Javascript 我能';t从sql查询中读取值

Javascript 我能';t从sql查询中读取值,javascript,mysql,node.js,Javascript,Mysql,Node.js,我将查询发送到数据库,在TextRow对象中得到响应,我无法读取始终未定义的值。我想从数据库中读取分配给电子邮件的密码,以便用户可以登录。所有控制台日志返回未定义 const db = require('../db/mysql'); router.post("/login", (req, res, next)=>{ let email = req.body.email; db.query("SELECT password FROM user WHERE em

我将查询发送到数据库,在TextRow对象中得到响应,我无法读取始终未定义的值。我想从数据库中读取分配给电子邮件的密码,以便用户可以登录。所有控制台日志返回未定义

    const db = require('../db/mysql');
    router.post("/login", (req, res, next)=>{
    let email = req.body.email;
    db.query("SELECT password FROM user WHERE email = ?", [email]).then(function (result) {
        if(result[0].password == req.body.password) {
            console.log(result[0].password);
            res.redirect("/users");
        }else{
            console.log(result[0].password);
            return false;
        }
    });
    // Example from documenation also send undefined value
    db.execute("SELECT * FROM user WHERE email = 'aaa@wp.pl;", function (err, result, fields) {
        console.log(result);
        console.log(fields);
    })
});
下面是db连接类

const mysql = require('mysql2');

const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'admin',
    database: 'weekop',
    multipleStatements: true,
    charset: 'utf8'
});

module.exports = pool.promise();
您使用的是对mysql2的promise()调用,而不是回调版本

正确的示例应该是(来自):

您使用的是对mysql2的promise()调用,而不是回调版本

正确的示例应该是(来自):

con.promise().query("SELECT * FROM user WHERE email = 'aaa@wp.pl;")
  .then(([rows, fields]) => {
      console.log(rows);
      console.log(fields);
  })
  .catch(console.log)
  .then( () => con.end());