这是我在Stackoverflow上的第一篇文章。我刚开始编程,现在我正在制作我的第一个Node.js应用程序。登录表单虽然效果不佳。我想比较post请求中的数据和数据库中的数据,看看是否匹配。有谁知道这里有什么问题?
router.post('/login', function(req, res, next) {
req.getConnection(function(err, connection) {
var data = {
username: req.body.username,
password: req.body.password
};
var user = data[0],
pass = data[1];
connection.query('SELECT username, password FROM users WHERE username = ? AND password = ?', [user], [pass], function(err, results) {
if(results) {
req.session.regenerate(function() {
req.session.login = true;
req.session.username = req.body.username;
res.redirect('/users/index');
});
} else {
res.render('/');
}
});
});
});
我使用的模块是:
"ejs": "^2.3.4",
"express": "~4.9.0",
"express-myconnection": "^1.0.4",
"multer": "^1.1.0",
"mysql": "^2.9.0",
"express-session": "~1.9.3"
我希望有人可以帮我进一步,因为我现在已经停留了一段时间。
非常感谢!
答案 0 :(得分:1)
这里的问题是connection.query(mysql npm模块)接受3个参数 -
您尝试使用4个参数。以下应该有效:
connection.query('SELECT username, password FROM users WHERE username = ? AND password = ?', [user, pass], function(err, results) { ...