首页 > 解决方案 > Node.js 中的环境变量不变

问题描述

  1. set NODE_ENV=production不能在我的电脑上工作。NODE_ENV不从“发展”变

    if(app.get('env') === 'development'){
        app.use(morgan('tiny'));
        console.log("Morgan enabled...");
    }
    
  2. set PORT=5000不工作 -PORT没有从“3000”改变。

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

标签: node.jswindowsenvironment-variables

解决方案


作为 Windows 用户,我过去在导出/设置环境变量以供节点使用时遇到问题。

我最终使用了dotenvNPM 包,因为无论您在什么系统上开发,您都可以确保它正确加载环境变量。

Dotenv 是一个零依赖模块,它将环境变量从 .env 文件加载到 process.env 中。

首先,安装并保存:

npm i dotenv

在项目的根目录中创建一个名为.env

PORT=5000

X=Y您可以使用简单的语法设置任意数量的变量。

然后,在您的代码中的某处:

require('dotenv').config();

// my main application code

通过上面的示例,您现在可以访问process.env.PORTwhich will equal 5000(从.env文件中设置的值)

注意:通过添加规则避免存储.env在版本控制中:.gitignore

node_modules/

# Other ignore rules...

# Add this line
.env

祝你好运!


推荐阅读