在express.js环境中使用。有什么建议吗?


当前回答

在OSX上,我建议将export NODE_ENV=development添加到~/中。Bash_profile和/或~/。Bashrc和/或~/.profile。

我个人将该条目添加到我的~/。Bashrc,然后有~/。bash_profile ~ /。概要文件导入该文件的内容,因此它在各个环境中是一致的。

完成这些添加后,一定要重新启动终端来进行设置。

其他回答

为了拥有多个环境,您需要之前的所有答案(NODE_ENV参数并导出它),但我使用了一种非常简单的方法,不需要安装任何东西。在你的包裹里。Json只是为你需要的每个env放一个脚本,就像这样:

...
"scripts": {
    "start-dev": "export NODE_ENV=dev && ts-node-dev --respawn --transpileOnly ./src/app.ts",
    "start-prod": "export NODE_ENV=prod && ts-node-dev --respawn --transpileOnly ./src/app.ts"
  }
 ...

然后,要启动应用程序,而不是使用npm start,使用npm run script-prod。

在代码中,您可以使用process.env.NODE_ENV访问当前环境。

喉咙痛。

对于Windows Powershell使用此命令

$env:NODE_ENV="production" ; node app.js

这里没人提到。env吗?在你的应用根目录下创建一个.env文件,然后require('dotenv').config()并读取值。易于更改,易于阅读,跨平台。

https://www.npmjs.com/package/dotenv

在OSX上,我建议将export NODE_ENV=development添加到~/中。Bash_profile和/或~/。Bashrc和/或~/.profile。

我个人将该条目添加到我的~/。Bashrc,然后有~/。bash_profile ~ /。概要文件导入该文件的内容,因此它在各个环境中是一致的。

完成这些添加后,一定要重新启动终端来进行设置。

Windows CMD -> set NODE_ENV=production

Windows Powershell -> $env:NODE_ENV=“production”

MAC -> export NODE_ENV=production