javascript - 我无法从 sql 查询中读取值

标签 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 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);
    })
});

这是数据库连接类

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() 调用,而不是回调版本。

正确的示例应该是(来自 https://www.npmjs.com/package/mysql2 ):

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());

关于javascript - 我无法从 sql 查询中读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59510989/

相关文章:

Javascript:如何只选中屏幕上的复选框

node.js - 如何在 nodejs 中渲染 css?

node.js - Travis CI 没有使用正确的 node.js 版本

javascript - 通过setRequestHeader授权

javascript - 表达 js,mongodb : “ReferenceError: db is not defined” when calling a function

javascript - 无法为盒子设置纹理(html5/js/babylon.js)

php - 优化我的数据结构。处理大量单位和转换

.net - 是否有用于 SQL 或 MySQL 等的 "object database"插件?

mysql - derby 和 hsqldb 中的 From_unixtime

javascript - node.js 从外部网站抓取 html 数据值