【问题标题】:Cannot read property 'query' of undefined, node/mysql无法读取未定义、节点/mysql 的属性“查询”
【发布时间】:2019-11-21 17:51:46
【问题描述】:

我收到此错误“UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'query' of undefined at register”。

我查看的其他帖子似乎是数据库未正确连接的问题,但我收到了表明数据库已连接的 console.log 消息。

const { db } = require("../config/db.js");

module.exports = {
    async register(req, res) {
        db.query(
            "INSERT INTO users(username, email, password) VALUES(?, ?, ?)",
            [req.body.username, req.body.email, req.body.password],
            (err, results, fields) => {
                if (!err) {
                    res.send("it worked!");
                } else {
                    console.log("error"); 
                }
            }
        );
    }
};


const mysql = require("mysql");

const db = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "gpsdb"
});

db.connect((err) => {
    if(err){
        throw(err);
    }
    console.log('connected to db');
});

module.exports = db; 

似乎数据库没有正确导出或其他什么,但我看不出是什么导致了问题。我基于本教程 https://www.youtube.com/watch?v=xZMwg5z5VGk&t=946s@23 分钟标记

【问题讨论】:

  • 要解构一个对象,你需要一个对象。 module.exports = { db }; 应该可以工作
  • 哇,我觉得自己像个白痴。非常感谢,让我发疯了!

标签: javascript mysql node.js


【解决方案1】:

db 导出为对象:

module.exports = { db };

如果你对语法感到困惑,它的 ES6 语法糖是:

module.exports = { db: db };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2023-03-16
    • 2021-09-12
    • 2018-04-17
    • 2020-09-25
    相关资源
    最近更新 更多