数据与带有express的Node中的sql比较

这是我在Stackoverflow上的第一篇文章。 我刚开始编程,现在我正在做我的第一个Node.js应用程序。 login表单不能很好地工作。 我想比较发布请求中的数据和数据库中的数据,看看是否有匹配。 有谁知道这里有什么问题?

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个参数 –

  • 查询
  • 要被转义的值的数组
  • callback函数

你已经尝试使用4个参数。 以下应该工作:

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