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
1 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
JS里===和==是有区别的,===是严格相等
你的表结构,password字段是不是数值型的?
所以查询到的result[0].password
是数字 123456
而外部提交进来的req.body.password
是字符串型的,所以他们不严格相等
你打印一下 typeof result[0].password
和 typeof req.body.password
就知道了
添加回答
举报
0/150
提交
取消