如果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]也会导致错误。