首页 > 解决方案 > 关于如何在 node.js/express 中设置 .env 变量的困惑

问题描述

所以我一直在尝试连接到我的 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的天才

标签: node.jsmongodbexpressmongooseenvironment-variables

解决方案


在第一个示例中,您定义了var MONGO_URI然后使用process.env.MONGO_URI; 这是不正确的,因为您必须使用已MONGO_URI在方法内直接定义connect的变量,或者使用项目根目录中 .env 文件中的变量。您可以使用以下场景之一:

1)局部变量案例:像以前一样添加一个var或const,然后将其附加到mongoose的connect方法中:

const mongoose = require('mongoose');
var MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });

2)使用.env文件案例:将连接字符串作为变量添加到.env项目根目录下的文件中:

创建一个.env文件,它应该包含以下内容:

MONGO_URI = 'mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'

然后,您可以在 connect 方法中包含此变量,但首先您必须dotenv通过以下命令之一安装 npm 包:

使用 npm: npm install dotenv

使用纱线:纱线添加 dotenv

然后在主项目文件中包含 dotenv 包:require('dotenv').config();

最后一步是将 .env 文件中的变量添加到您的 connect 方法中,最终结果应如下所示:

require('dotenv').config();
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });

推荐阅读