使用express在节点中与sql进行数据比较
这是我在Stackoverflow上的第一篇文章。我不久前开始编程,现在我正在制作我的第一个Node.js应用程序。但是,登录表单工作不正常。我想将post请求中的数据与数据库中的数据进行比较,看看是否存在匹配。有人知道这里有什么问题吗使用express在节点中与sql进行数据比较,sql,node.js,Sql,Node.js,这是我在Stackoverflow上的第一篇文章。我不久前开始编程,现在我正在制作我的第一个Node.js应用程序。但是,登录表单工作不正常。我想将post请求中的数据与数据库中的数据进行比较,看看是否存在匹配。有人知道这里有什么问题吗 router.post('/login', function(req, res, next) { req.getConnection(function(err, connection) { var data = { use
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"
我希望有人能帮助我走得更远,因为我已经被困了一段时间了
非常感谢 这里的问题是connection.query(mysql npm模块的)接受3个参数-
- 询问
- 要转义的值数组
- 回调函数
connection.query('SELECT username,password FROM username=?AND password=?',[user,pass],function(err,results){…
您可能想解释一下“工作不正常”的意思。您希望它做什么,它会做什么?到目前为止您采取了哪些故障排除步骤?我收到一个错误:this.\u callback.apply不是一个函数。我想检查填写到表单中的用户名和密码是否也在数据库中。如果是,我想为该用户启动一个会话(已登录)。我已在internet上查找答案,并尝试了一些变体,但我认为该查询不正确。错误表明代码在某个地方需要一个函数,但得到了其他函数(函数响应apply
)。果然,connection.query
似乎包含3个参数,SQL、值和回调。您正在传递4个参数。您的用户值和密码值可能需要在一个数组中。(旁注,存储明文密码不好)。除了@numbers1311407所说的之外,您在查询中传递了太多的参数。请尝试以下操作:…[用户,传递]
。@AshleyB(或@numbers1311407),您应该将其作为答案发布。没问题,如果您发现我的答案有用,您能接受我的答案作为解决方案吗?(单击我问题旁边的勾号图标).谢谢!很抱歉没有看到您的答复,我已接受您的答复=)