无法读取未定义的属性“查询”,节点/ mysql

时间:2019-07-12 00:34:49

标签: javascript mysql node.js

我收到此错误“ UnhandledPromiseRejectionWarning:TypeError:无法读取寄存器中未定义的属性'query'”。

我看过的其他帖子似乎是由于数据库无法正确连接而引起的,但是我收到了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分钟标记

1 个答案:

答案 0 :(得分:0)

db导出为对象:

module.exports = { db };

如果您对语法感到困惑,可以使用它的ES6语法糖:

module.exports = { db: db };