Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用express在节点中与sql进行数据比较_Sql_Node.js - Fatal编程技术网

使用express在节点中与sql进行数据比较

使用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

这是我在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"
我希望有人能帮助我走得更远,因为我已经被困了一段时间了


非常感谢

这里的问题是connection.query(mysql npm模块的)接受3个参数-

  • 询问
  • 要转义的值数组
  • 回调函数
您已尝试使用4个参数。以下方面应起作用:


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),您应该将其作为答案发布。没问题,如果您发现我的答案有用,您能接受我的答案作为解决方案吗?(单击我问题旁边的勾号图标).谢谢!很抱歉没有看到您的答复,我已接受您的答复=)