Sql 如何在其他文件中使用Knex对象?
如何在其他文件中使用knex db对象 比如说 我的index.jsSql 如何在其他文件中使用Knex对象?,sql,node.js,postgresql,express,knex.js,Sql,Node.js,Postgresql,Express,Knex.js,如何在其他文件中使用knex db对象 比如说 我的index.js const app = require("express")(); const cors = require("cors"); const bodyParser = require("body-parser"); const user = require("./routes/User"); const product = require("./routes/Product"); //----------------- con
const app = require("express")();
const cors = require("cors");
const bodyParser = require("body-parser");
const user = require("./routes/User");
const product = require("./routes/Product");
//-----------------
const db = require("knex")({
client: "pg",
connection: {
host: "127.0.0.1",
user: "postgres",
password: "",
database: "Razer"
}
});
//-----------------
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
//-----------------
app.use("/user", user);
app.use("/product", product);
//-----------------
module.exports = db;
//-----------------
app.listen(5000, () => {
console.log("App listening on PORT 5000 ");
});
my User.js
const express = require("express");
const router = express.Router();
const db = require("../index");
router.get("/", async (req, res) => {
console.log(db);
});
module.exports = router;
当我试图在User.js中使用db对象时,它不起作用,并给我一个空对象你在User.js和index.js之间进行循环引用。因此,在User.js中请求db时,尚未创建db 如果您确实希望保留一个全局声明的knex实例,那么应该创建单独的 db.js文件,该文件仅创建knex,并在index.js和User.js文件中都需要它