猿问

初学node.js+mysql ,大佬们帮忙看看吧

router.post('/signin', function(req, res) {

  var username = req.body.username;

  var password = req.body.password;

  if(username&&password) {

    pool.getConnection(function(err, connection) {

      connection.query('select password from users where username="'+username+'"', function (err, result) {

          if(err){

              throw err;

          } else {

              if(result[0] === undefined) {

                  res.send('没有该用户。');

              } else {

                  console.log(result[0].password === req.body.password);//false

                  console.log(result[0].password);//123456

                  console.log(req.body.password);//123456

              }

          }

      })

    })

  }

});

这个地方是为什么?
console.log(result[0].password === req.body.password);//false

莫回无
浏览 513回答 1
1回答

猛跑小猪

JS里===和==是有区别的,===是严格相等你的表结构,password字段是不是数值型的?所以查询到的result[0].password 是数字 123456而外部提交进来的req.body.password是字符串型的,所以他们不严格相等你打印一下 typeof result[0].password 和 typeof req.body.password 就知道了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答