运行中的 Node.js 服务怎样应对有文件更新的情况
try node-supervisor https://github.com/isaacs/node-supervisor
■网友
本地开发使用nodemon,默认可以监控源文件变动~
生产环境使用pm2,但是不建议开启watch功能!原因如下:
影响性能~避免误操作,一旦有文件被人修改将导致服务器重启然后报错,想想多么可怕重启pm2 restart或者删除重新创建pm2 delete xx \u0026amp;\u0026amp; pm2 start xx
当然更好的方式是使用容器灰度升级~
■网友
开发环境
使用node-dev,会监听文件变动并重启(js文件,模板文件不会出发重启)
生产环境
使用pm2,开启watch,会对整个项目文件监听,新增/修改都会自动重启服务.
不过要注意你新增的文件可能会导致你的程序出错,所以在使用pm2监听的时候做好监听规则.
例如我在之前一个项目中的需求是,利用node的pages插件进行无头浏览器截图,然后生成一张图片,后来把这张图片读成base64的格式再发送邮件发出去.
期间出现了一个问题,就是我截图之后,在文件结构里多了一个图片,文件监听导致项目重启,后面的代码就执行不下去了,一直出错
可以看到监听的时候,因为多了文件,所以路由监测到了路由有变动,重启了服务(不要吐槽为什么截图放在router里...)
解决方案是将watch的规则修改,加入忽略监听的文件夹
形如:
我在某次分享中介绍到了node-dev和pm2,将涉及到的部分截图出来
【运行中的 Node.js 服务怎样应对有文件更新的情况】 



附上PM2官网 PM2
推荐阅读
- #医保云#备案报销手机搞定 看病买药“一码通行” 江苏医保云平台上线试运行
- 「降雪」目前江苏全省道路运行基本顺畅 降雪持续
- 鄂温克冬季马赛-30℃极寒开赛:寒冬中的火热派对
- 京哈高铁北京至承德段进入运行试验阶段
- 「淮镇段」连淮扬镇铁路全线贯通在即 淮镇段再次试运行
- 大雪@大雪腌肉 适当进补 今日大雪
- |受检样品全部为阴性 高新区冷链食品集中监管仓运行良好
- |电商事业中的“闪光少年”
- hadoop中的mapreduce链接(mapreduce chaining)怎样避免中间文件的产生
- 经观汽车|日系车企中的“异类”?东风日产将导入e-POWER技术大干增程式混动 | 经观汽车
