Expressjs pm2忽略watch public/images文件夹

Vuo*_*ran 8 javascript node.js express pm2

我有一个使用nodejs的网站.问题是当用户上传图像时网站停止工作.因为PM2重启服务器时文件改变我认为.如何解决这个问题呢.谢谢

Raf*_*ski 15

PM2有特殊标志--ignore-watch旗.

尝试process.json在app.js/index.js所在的同一目录中创建文件并粘贴它:

{
  "watch": ["server", "client"],
  "ignore_watch" : ["node_modules", "public/images"],
  "watch_options": {
    "followSymlinks": false
  }
}
Run Code Online (Sandbox Code Playgroud)

有关该主题的更多信息:http://pm2.keymetrics.io/docs/usage/watch-and-restart/


Big*_*n73 5

根据实际经验做一个简单的解释

在expressjs应用程序的根文件夹中创建一个json文件。它可以有任何名称,但是为了清楚起见,我使用pm2-process.json

{
    "script": "bin/www",
    "watch": true,
    "ignore_watch": ["log"],
    "watch_options": {
        "followSymlinks": false
    },
    "name": "YOUR_PM2_PROCESS_NAME"
}
Run Code Online (Sandbox Code Playgroud)

要从终端启动pm2服务,请在express应用程序的根文件夹中:

pm2 start pm2-process.json
Run Code Online (Sandbox Code Playgroud)

而已。真的很简单。还有许多其他选择,但这只是最低限度的功能。

字段说明:

  • 脚本 -运行Express应用程序的脚本
  • watch-一个布尔型标志,用于控制pm2是否监视(或不监视)文件夹
  • ignore_watch-如果启用了监视,则告诉pm2忽略监视的文件夹(换句话说,这是监视监视器的排除列表)
  • name -pm2进程的名称(“服务”)。将其设置为您选择的应用程序名称。

完整的文档在这里:http : //pm2.keymetrics.io/docs/usage/application-declaration/#attributes-available

注意:在上面的示例中,我将node_modules文件夹从ignore_watch数组中删除了,因为我希望pm2在git pull和npm i之后导致节点模块发生更改后重新启动服务。但是,通过编辑数组值很容易忽略node_modules或任何其他文件夹(例如,temp,public等)