因此,我只是第一次使用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/

10-12 12:17
查看更多