因此,我只是第一次使用node和pm2部署了一个站点,然后回去做一些优化和阅读最佳实践等。
我了解到,通过设置NODE_ENV=production
可以获得很多好处。
我在pm2文档中找到了这个:
[process.json]
"env_production" : {
"NODE_ENV": "production"
}
...
$ pm2 start process.json --env production
所以,我做到了,但我不知道它是否有效。在尝试弄清楚如何检查的同时,我学会了尝试:
$ node
> process.env.NODE_ENV
> undefined
因此,这不是一个好兆头。.但是,由于我对低级内容的工作方式了解有限,我可以猜测pm2可能将每个应用程序作为一个单独的节点进程启动了吗?因此,当我尝试检查它时,也许我的处理方法不正确。
另外,我不知道是否必须制作一个新的〜/.pm2/dump.pm2文件,因为也许每当它覆盖我设置的选项时? (因为我使用了
pm2 startup
)。如何检查我的pm2应用程序的NODE_ENV是否已设置?
最佳答案
回答标题中的实际问题:
在您的脚本中,对于我我的Express应用程序的app.js
文件,您可以使用process.env.NODE_ENV
获取NODE_ENV
的当前值,并根据需要注销。
更好的方法是使用PM2的Process Metrics模块,也称为pmx
。
yarn add pmx
或者
npm install pmx --save
然后
const Probe = require('pmx').probe()
Probe.metric({
name : 'NODE_ENV',
value : function() {
return process.env.NODE_ENV
}
})
现在它将显示在对pm2 monit的调用中(左下方)。
更改环境:
您有必要终止并重新启动该过程以更改环境。
$ pm2 kill && pm2 start pm2.json --env production
以下内容不够好:
pm2 restart pm2.json --env production
关于node.js - 如何检查我的pm2应用程序NODE_ENV是否已设置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38002327/