如果MySQL查询返回1个结果,是否需要指定我想从结果得到密码?
使用的查询只返回1行/结果,所以当我想要获得密码列,我必须写:
var hash = results[0].password;
我试过了
var hash = results.password;
但是,然后哈希变得不确定。
router.post('/', function(req, res, next) { var username = req.body.username; var password = req.body.password; db.query('SELECT * FROM user WHERE username = ?', [username], function (error, results, fields) { if (error) throw error; var hash = results[0].password; console.log(hash); }); res.redirect('/'); });
是的, results
只是一个数组,即使有一行,你仍然需要告诉它你试图访问哪一行。 results
没有属性password
,但它的第一行。
我假设你也有(或将包括)确保至less有一行的逻辑? 否则,如果结果不(可能用户不存在),那么调用results[0]
也会导致错误。