首页 > 解决方案 > MongoDB连接错误nodejs express mongoose

问题描述

我是一个初学者,并试图用 node 和 express 和 mongoose 测试与 MongoDB 的一些基本连接,但找不到为什么返回为 undifined

我使用 dotenv 模块来使用 env 变量,任何建议

MongooseError:uri参数openUri()必须是字符串,得到“未定义”。确保mongoose.connect() or的第一个参数mongoose.createConnection()是一个字符串。

这是我的代码

// index.js

import app from './app'
import './database'

app.listen(app.get('port'))
console.log('Greetings from express')
// database.js

import mongoose from "mongoose";
import config from './config'

(async () => {
    const db = await mongoose.connect(config.mongodbURL, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
    });
    console.log('Database connected to:', db.connection.name);
})();
// config.js
import { config } from "dotenv";
config();

export default {
    mongodbURL: process.env.MONGODB_URI,
};
// .env
MONGODB_URI = mongodb://localhost/tasksapi

标签: node.jsmongodbmongoosedotenv

解决方案


是的,你在这里做什么

await mongoose.connect(config.mongodbURL,

将其更改为await mongoose.connect(process.env.mongodbURL,

并将 mongodb url 存储在 config.env 文件中,如下所示

mongodbURL=mongodb+srv://USERNAME:<PASSWORD>@cluster<CLUST>/<DBNAME?retryWrites=true&w=majority

,这对你有用


推荐阅读