【发布时间】:2020-05-21 20:00:32
【问题描述】:
所以我一直在尝试连接到我的 MongoDB 数据库,我不得不创建一个 process.env.MONGO_URI 变量来存储连接 URI,我感到非常沮丧,因为当我看起来好像它不起作用时根据我的学习模块的说明正确地做,代码如下:
const mongoose = require('mongoose');
var MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
尽管“解决方案”说了什么,但上述方法不起作用,但是当我将代码更改为此它起作用时,
const mongoose = require('mongoose');
var MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
process.env.MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
我的主要问题是关于设置 process.env.VARIABLE,为什么我必须在单独的行上设置大写部分,然后在单独的行上再次重置完整的 process.env.VARIABLE?我的学习资料基本上是说你设置好了,然后你就可以把它“夹”到 process.env 上,这似乎完全错误,或者有多种设置 process.env 的方法。变量,谁能给我一个更好的解释,谢谢stackoverflow的天才
【问题讨论】:
-
你可以这样做 ::
const mongoose = require('mongoose'); process.env.MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority' mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });(不需要第二行)虽然在现实世界的应用程序中你不会像你在这里做的那样存储数据库连接字符串.. -
你安装了.env吗?使用环境变量是您的要求吗?不需要连接到 Mongoose。您应该能够将
mongoose.connect(process.env.MONGO_URI, ...更改为mongoose.connect(MONGO_URI, ...并删除process.env.MONGO_URI=...,它应该可以连接。
标签: node.js mongodb express mongoose environment-variables