使用过的查询只返回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('/');
});
答案 0 :(得分:2)
是的,results
只是一个数组,即使有一行,您仍然需要告诉它您要尝试访问哪一行。 results
没有属性password
,但其中的第一行有。{/ p>
我假设您还拥有(或将包含)确保至少有一行的逻辑?否则,如果该结果不存在(可能用户不存在),则调用results[0]
也会导致错误。