我有一个使用nodejs的网站。问题是当用户上传图像时网站停止工作。因为PM2重启服务器时文件改变我认为。如何解决这个问题呢。 谢谢
答案 0 :(得分:9)
PM2具有特殊标志--ignore-watch
标志。
尝试在app.js / index.js所在的同一目录中创建文件process.json
并粘贴它:
{
"watch": ["server", "client"],
"ignore_watch" : ["node_modules", "public/images"],
"watch_options": {
"followSymlinks": false
}
}
有关该主题的更多信息:http://pm2.keymetrics.io/docs/usage/watch-and-restart/
答案 1 :(得分:4)
根据实际经验进行的简单说明
在expressjs应用程序的根文件夹中创建一个json文件。它可以有任何名称,但是为了清楚起见,我使用pm2-process.json
{
"script": "bin/www",
"watch": true,
"ignore_watch": ["log"],
"watch_options": {
"followSymlinks": false
},
"name": "YOUR_PM2_PROCESS_NAME"
}
要从终端启动pm2服务,请在express应用程序的根文件夹中:
pm2 start pm2-process.json
就是这样。真的很简单。还有很多其他选择,但这只是最低限度的功能。
字段说明:
完整的文档在这里:http://pm2.keymetrics.io/docs/usage/application-declaration/#attributes-available
注意:在上面的示例中,我将node_modules文件夹从ignore_watch数组中删除了,因为我希望pm2在git pull和npm i之后导致节点模块发生变化的情况下重新启动服务。但是,通过编辑数组值很容易忽略node_modules或任何其他文件夹(例如temp,public等)