gpt4 book ai didi

javascript - `uri`参数到 `openUri()`必须是字符串,得到 "undefined"

转载 作者:行者123 更新时间:2023-11-30 06:17:30 25 4
gpt4 key购买 nike

我对此进行了很多搜索,但没有一个能帮助我。

当我运行我的项目时,出现此错误:

/home/ali/Desktop/personalitytest-backend/node_modules/mongoose/lib/connection.js:428 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.

我的 index.js 文件:

const express = require('express'),
app = express(),
mongoose = require('mongoose'),
rateLimit = new require('express-rate-limit')({
windowMs: 1000 * 60 * 10,
max: 500,
handler: (req, res) => {
res.json({
data: 'Your request was too much, please try again in 10 minutes later.',
status: 'error'
})
}
});
const Application = new class {
constructor() {
this.setConfig();
this.setupDB();
this.setRouters();
this.setupExpress();
}
setConfig() {
require('dotenv').config();
app.use(require('helmet')());
app.use(express.json());
}
setupDB() {
mongoose.Promise = global.Promise;
mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true, useCreateIndex: true });
}
setRouters() {
app.use('/', require('./routes'));
}
setupExpress() {
app.listen(process.env.PORT, () => console.log(`Listening on port ${process.env.PORT}.`));
// app.listen(process.env.PORT, process.env.IP, () => console.log(`Listening on port ${process.env.PORT}.`));
}
}

我的 .env 文件:

PORT=3000
DATABASE_URL=mongodb://localhost:27017/PersonalityTest
JWT_SECRETKEY=asfdawetq312etr%!@$qe

如果我在mongoose.connect 方法中简单地写数据库url,不会有错误。

例如,这没有错误:

mongoose.connect("mongodb://localhost:27017/PersonalityTest", { useNewUrlParser: true, useCreateIndex: true });

最佳答案

要读取 .env 文件,您需要安装可以读取该文件的东西,例如 dotenv

npm install dotenv --save

那你require that package in your code

require('dotenv').config();

根据 dotenv 文档你应该这样做

As early as possible in your application, require and configure dotenv.

接下来您可能需要在您的 DATABASE_URL 值周围添加双引号

DATABASE_URL="mongodb://localhost:27017/PersonalityTest"

关于javascript - `uri`参数到 `openUri()`必须是字符串,得到 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55267494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com