让 dotenv 获取我的 .env 文件时遇到问题
这是我的文件结构:
├── app.js
├── node_modules
│ └── ...
├── package.json
├── routes
│ └── index.js
└── start.js
│
└── .env
这是我的 start.js:
require('dotenv').config();
console.log(process.env.MONGO_URI);
const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE, { useMongoClient: true });
mongoose.Promise = global.Promise;
mongoose.connection
.on('connected', () => {
console.log(`Mongoose connection open on ${process.env.DATABASE}`);
})
.on('error', (err) => {
console.log(`Connection error: ${err.message}`);
});
在我的 .env 里面如下:
mongodb+srv://username:password@livewelldb-aqoul.mongodb.net/test?retryWrites=true&w=majority
不幸的是,在运行我的 node.js 应用程序时,我收到以下错误:
C:\Users\user\Desktop\project\node_modules\mongoose\lib\connection.js:520
throw new MongooseError('The `uri` parameter to `openUri()` must be a ' +
^
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
发生这种情况是因为 dotenv 由于某种原因似乎无法找到我的 .env 文件。当我跑步时,console.log(process.env.MONGO_URI);
我变得不确定。
不知道为什么。大多数有此问题的人都有以下问题之一:
- 他们不从根目录运行他们的程序
- 他们的 .env 不在他们的根目录中
- 他们的 .env 命名不正确,例如“config.env”
- 他们的 .env 格式不是 UTF-8
我没有任何这些问题。我不确定是什么原因造成的。
有任何想法吗?