node.js - 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
解决方案
是的,你在这里做什么
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
,这对你有用
推荐阅读
- php - 将 mysql 数据库生成的下拉列表中的值放入表单输入字段
- c# - 正则表达式需要超过 1000 分钟才能完成
- cassandra - Cassandra 计数器的竞争条件
- c++ - C++ - 如何仅使用向量将稀疏矩阵转换为密集矩阵
- reactjs - 高阶组件
- prolog - Prolog中如何将事实累积成一个值
- sbt - SBT打包机大战
- r - 在 r 中使用“htmltab”函数的本地 htm 表文件的不可读问题
- angular - mat slide toggle 最初设置为 true,即使它绑定到属性,整个值为 false
- sql-server - 将 Microsoft SQL Server 与 Windows 窗体应用程序一起使用 (vb.net)