111

如何在 node.js 中设置环境变量?

我宁愿不依赖任何特定于平台的东西,例如运行导出或 cmd.exe 的设置。

4

4 回答 4

171

您可以在以下位置设置环境变量process.env

process.env['VARIABLE'] = 'value';

-或者-

process.env.VARIABLE = 'value';

节点应该注意平台细节。

于 2012-05-31T08:06:39.093 回答
4

首先你应该安装这个包:- https://github.com/motdotla/dotenv [ npm install dotenv]

然后您需要在项目的根目录中创建一个 .env 文件,您可以在其中添加如下变量:-

NODE_ENV=PRODUCTION
DATABASE_HOST=localhost

现在您可以在代码中轻松访问这些变量,如下所示:-

require('dotenv').config()
console.log(process.env.NODE_ENV);

它对我有用,希望能有所帮助。

于 2019-05-29T06:13:18.943 回答
1

node v14.2.0 设置环境变量首先在你的项目主目录中创建一个文件名 config.env 然后写入你需要的所有变量,例如

配置.env

NODE_ENV=development
PORT=3000
DATABASE=mongodb+srv://lord:<PASSWORD>@cluster0-eeev8.mongodb.net/tour-guide?retryWrites=true&w=majority
DATABASE_LOCAL=mongodb://localhost:27017/tours-test
DATABASE_PASSWORD=UDJUKXJSSJPWMxw

现在从 npm 安装 dotenv,dotenv 将卸载你的工作

npm i dotenv

现在在您的服务器启动器脚本中,在我的情况下,它是 server.js 使用 doenv 加载 env 变量。

const dotenv = require('dotenv');
dotenv.config({ path: './config.env' });
const app = require('./app'); // must be after loading env vars using dotenv

//starting server
const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`app running on port ${port}...`);
});

我用的是express,我所有的express代码都在app.js里,写在这里供大家参考

const express = require('express');
const tourRouter = require('./route/tourRouter');
const userRouter = require('./route/userRouter');

if (process.env.NODE_ENV === 'development') {
  console.log('mode development');
}
app.use(express.json());

app.use('/api/v1/tours', tourRouter);
app.use('/api/v1/users', userRouter);

module.exports = app;

现在使用控制台启动你的服务器,我使用的是nodemon,你可以从 npm 安装它;

nodemon server.js
于 2020-05-26T11:15:56.903 回答
0

那么我要做的是首先从 npm 安装 dotenv 包

npm install dotenv

然后我将它导入到我的文件中。

require('dotenv').config();

那么你就可以走了。:)

您可以使用以下方法读取变量:

console.log(process.env.MY_VARIABLE);

虽然您可以使用以下方法设置变量:

process.env.MY_OTHER_VARIABLE = 'helloworld;

于 2020-11-24T11:41:03.233 回答