Node JS MySQL 模型导出

问题描述

所以我开始学习 Node JS,我正在使用 React、Node、Express 和 MysqL 开发一个完整的 Todo-App。

我在理解 commonjs 模块和 Express 路由时遇到问题。

app.js:

const express = require("express");
const cors = require("cors");
const MysqL = require("MysqL");
const userRoutes = require("./routes/userRoutes.js");

const app = express();
app.use(express.json());
app.use(cors());


//Database
const db = MysqL.createPool({
    connectionLimit: 10,host: "localhost",user: "admin",password: "123456789",database: "todo_app",});


/* ROUTES */
app.use("/users",userRoutes);

app.get("/account",(req,res) => {
    db.query("SELECT * FROM users",(err,result) => {
        if (err) throw err;
        console.log(result);
    });
});

//Starting server
const PORT = 3001;
app.listen(PORT,() => console.log(`Server running in port ${PORT}`));

module.exports = db;

userRoutes.js:

const express = require("express");
const db = require("../app");

const router = express.Router();
module.exports = router;

console.log("This is DB: ",db);

router.get("/",res) => {
    const sql = "SELECT * FROM users";

    db.query(sql,result) => {
        if (error) throw error;

        console.log(result);
    });
});

当我转到 localhost:3001/account 时,它会从数据库中记录所有用户,因此它可以工作。但是,当我转到 localhost:3001/users 时,我得到并出错:“TypeError: db.query is not a function”。

我该如何解决这个问题?我真的很想分开路由并使用路由,因为我也会有待办事项和待办事项列表的路由,而且代码会很庞大,未分开。

我什至在考虑创建模块文件夹并将路由与回调函数分开。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...