数据与Node中的sql进行比较

时间:2016-01-06 16:20:51

标签: sql node.js

这是我在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"

我希望有人可以帮我进一步,因为我现在已经停留了一段时间。

非常感谢!

1 个答案:

答案 0 :(得分:1)

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

  • 查询
  • 要转义的值数组
  • 回调函数

您尝试使用4个参数。以下应该有效:

connection.query('SELECT username, password FROM users WHERE username = ? AND password = ?', [user, pass], function(err, results) { ...