读取javascript中的sql查询输出

读取javascript中的sql查询输出,javascript,mysql,node.js,express,pug,Javascript,Mysql,Node.js,Express,Pug,我正在尝试用javascript读取SQL查询输出 我正在使用Node.js、Express Engine(MVC模型)读取MySQL数据库,并使用Jade在UI上显示输出 我有一个index.js文件,它从homepage.jade表单字段获取“password”和“user_name”的值。 我必须检查用户输入的密码是否与数据库中的密码匹配。 为此,我正在查询数据库,以获取输入用户名的匹配记录,并希望获取该用户的密码值,并检查它是否等于password的表单值 router.get('/sa

我正在尝试用javascript读取SQL查询输出 我正在使用Node.js、Express Engine(MVC模型)读取MySQL数据库,并使用Jade在UI上显示输出

我有一个index.js文件,它从homepage.jade表单字段获取“password”和“user_name”的值。 我必须检查用户输入的密码是否与数据库中的密码匹配。 为此,我正在查询数据库,以获取输入用户名的匹配记录,并希望获取该用户的密码值,并检查它是否等于password的表单值

router.get('/sample', function(req, res) {


db=mysql.createConnection(config);
    db.connect(function(err){

    });

var formpass= req.body.password;
var user_name= req.body.userName;
var sql="select * from user where user_name= 'monicathaneer'";

    db.query(sql, function(err_query,data)
{

for a in data
pass= a.password;
}

    if(formpass==pass)
    {
        res.render('Login', {
        "Login" : data  });

     }
});
当我运行节点时,在“a”附近显示意外令牌,在“if”附近显示意外令牌时出错。
我想知道如何从.js文件中的sql输出中读取password属性。

您的代码示例有一些语法错误并丢失了大括号。尝试以下操作(假设您使用的是模块):

一些考虑:

  • 您不应该尝试手动处理身份验证。考虑使用类似的中间件;<李>
  • 您不需要在每次请求时打开和关闭连接。尝试重构代码,以便在应用程序启动时打开连接,并按需使用

嗨,罗德里戈,我刚刚开始学习这个节点mysql express jade安装工具,我正在努力理解这些概念。但是我有一个疑问。。“数据”不包含整个select*元组而不仅仅是密码吗-/也可以请你分享链接,有一个很好的文档为这个节点表达sql???我没有找到任何好的网站,除了他们自己的网站,这些网站只有基本的功能定义。@monicantanner
data
var是一个数组,包含查询返回的所有行。因此,我得到了第一行
行[0]
,以及这个对象的属性
.password
。还有一些好的链接:,和。
router.get('/sample', function(req, res) {

  var formpass = req.body.password,
      user_name = req.body.userName,
      sql = "select * from user where user_name = 'monicathaneer'";
  var db = mysql.createConnection(config);

  db.connect(function (err) {
    // you should handle the errors here
  });

  db.query(sql, function (err_query, data) {

    // I'm assuming your query will return just 1 row
    // because usernames should be unique
    if (formpass === data[0].password) {
        res.render(
          'Login',
          {"Login": data}); // In your context, 'data' contains the user password...
                            // Do you really want to send it back to the web page?
    }
  });

  db.end(); // you forgot to close your connection.
});