не может прочитать свойство 'name' из неопределенного nodejs - PullRequest
0 голосов
/ 01 марта 2019

Когда я запускаю свой сервер узлов, я получаю ошибку типа: не могу прочитать свойство 'имя' из неопределенного.Я могу использовать console.log user_data.name вплоть до console.log ("tt3" + user_data.name).Тогда это просто говорит tt3undefined.

Несмотря на то, что я могу сохранить console.log user_data.name, я все еще получаю не могу прочитать свойство 'name' из undefined в первом um.getUser ();

Я полностью растерялся, в чем проблема.

Я считаю, что мои функции также работают правильно.

Когда я console.log (user_data.name), он печатает имя

router.get('/users/game', function(req, res){
  var user_data = {
    name: req.query.player_name,
    password: req.query.password
  };

  console.log("does this exist"+user_data.name);
        if(user_data.name !=="" && user_data.password !== ""){ //if the password and username aren't blank
          //console.log(user_data.name);

                um.getUser(user_data.name, user_data.password, function(response){
                          var userinfo = response;
                          exports.logplayer = userinfo;
                  //console.log("tt" +user_data.name);
                  //console.log(exports.logplayer);
                        if(exports.logplayer == null){ //if the username and password dont exist
              //      console.log("tt2" +user_data.name);

                            um.getUsername(user_data.name,function(response){ //check to see if username exists
                      console.log("tt3" +user_data);
                                var userinfo = response;
                                exports.logplayer = userinfo;

                          if(exports.logplayer == null){ //if user name doesnt exist then create a new user
                              var newuser = new Player(user_data.name,0,0,0,0,0,0,user_data.password, "", "");
                              console.log(JSON.stringify(newuser) + "user couldn't be found in csv, so new user has been created");
                              um.updateUser(newuser,function(){ //this will update to csv
                              exports.logplayer = newuser;
                              res.status(200);
                              res.setHeader('Content-Type', 'text/html')
                              res.render('game', {user:exports.logplayer});
                                }); //updateUser
                            }
                          else{ //if username does exist, return index for them to input the correct password
                              var user_data = {
                              name:"",
                              password:"",
                              message:"The entered username exists but the entered password doesn't match it."
                              };

                              res.status(200);
                              res.setHeader('Content-Type', 'text/html')
                              res.render('index', {data:user_data});
                              console.log("wrong password");
                            }

                    });//       getusername
              }
          else{ //if the player already exists
            res.status(200);
            message = "Let's play!";
            res.setHeader('Content-Type', 'text/html')
            res.render('game', {user:exports.logplayer, message:message});
            console.log("rendering the game for an existing user:" + exports.logplayer.name);
          }
             });//getUser callback


      } //password/username isn't blank
      else{ // if password or username is blank
        var user_data = {
          name:"",
          password:"",
          message:"Please enter a username and password."
        };

        console.log(message);
        res.status(200);
        res.setHeader('Content-Type', 'text/html')
        res.render('index', {data:user_data});
      }


});//router.get('/users/game'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...