目前我的函数是这样的
module.exports.processForm = function(req, res) {
req.assert('username', 'Username field is required').notEmpty();
req.assert('password', 'Password field is required').notEmpty();
if (req.validationErrors()) {
res.render('login.html', {title: 'Login form', errors: req.validationErrors()});
}
db.query('SELECT name FROM users WHERE name = ? LIMIT 1', req.body.username, function(errs, data) {
if (errs) {
res.render('login.html', {title: 'Login form', errors: 'Wrong password / username'});
}
});
}
我试图从表用户中选择字段名,但该字段不存在,所以我如何检查查询是否成功执行?我尝试了
if (data.length === 0) {
res.render('login.html', {title: 'Login form', errors: 'Wrong password / username'});
}
没有成功,如果我尝试res.send(data),它看起来像这样[]
你的errs
参数将是一个错误对象,如果有某种类型的数据库或连接相关的问题(例如糟糕的SQL语法或其他一些严重的错误)。对于SELECT查询,如果data.length
为零,则表示查询成功,但结果为零行。
所以你检查data.length === 0
的解决方案是正确的,但你也应该检查和处理errs
参数。