我在主文件夹中有一个 Express api (
backend
),其中有一个 .env
文件:
main
- .env
- backend
在
app.js
中,我可以使用 .env
变量连接到我的数据库,如下所示:
const dbconnect = require("./data/db");
require("dotenv").config();
dbconnect();
但是在另一个文件(
seeder.js
)中看不到 .env 文件/变量,所以如果我尝试:
const dbconnect = require("./db");
require("dotenv").config();
dbconnect();
我得到:
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined"
我的
db
文件:
const mongoose = require("mongoose");
const dbconnect = async () => {
try {
await mongoose.connect(process.env.DB);
// await mongoose.connect("mongodb://127.0.0.1:27017/recipes");
console.log("Database connected");
} catch (error) {
console.log(error);
process.exit();
}
};
module.exports = dbconnect;
底线是 -
app.js
有效,但 seeder.js
不起作用,为什么?
只需将
dotenv
导入到 db
文件中,
const mongoose = require("mongoose");
require("dotenv").config();
const dbconnect = async () => {
try {
await mongoose.connect(process.env.DB);
// await mongoose.connect("mongodb://127.0.0.1:27017/recipes");
console.log("Database connected");
} catch (error) {
console.log(error);
process.exit();
}
};
module.exports = dbconnect;