我想使用节点(11.10.1),pm2(3.4.0),通过Ubuntu 16.04上传图像。像许多其他尝试过的人一样,我可以通过节点进程从启动服务器接收图像,但是一旦我使用PM2上传图像,PM2就会重新启动服务器并且没有上传图像。
我创建了一个生态系统并设置了不同类型的设置,如watch,ignore,autoreset,cwd。我也试过cli代码行,它是“sudo pm2 start server.js --ignore-watch”/ public / images“。我不知道怎么能以正确的方式忽略Pm2。我也确定我做的在Myapp / public / images /上有一个文件路径
我尝试过以下方法:Multer upload files with PM2 Expressjs pm2 ignore watch public/images folder https://pm2.io/doc/en/runtime/guide/ecosystem-file/ http://pm2.keymetrics.io/docs/usage/watch-and-restart/
我的文件结构:
>MyApp
>ecosystem.config.js
>server.js
>public
>images
>routes
这是我的生态系统
'apps' : [{
'name': 'pm2_checking_server',
'script': 'server.js',
'cwd': '/var/www/MyApp/'//........also tried it without cwd
'watch': ['server.js'], //...........I also did true/false
'ignore_watch': ['public/images/'],//...did variations like ./public/images, public/images... etc
'watch_options': {
'followSymlinks': false
}
}],
这是MyApp / routes /中的multer目的地
destination: function (req, files, cb) {
cb(null, path.join(__dirname , '../public/images'))
}
我希望Pm2忽略观看文件上传,但我从上传图片得到的回复是“错误”:-13,“code”:“EACCES”,“syscall”:“open”,“path”:“/ var / WWW / MyApp的/公/图片/ 7ylxlncRKJ
谢谢您的帮助!
据我所知,与官方例子的不同之处在于你使用的是单引号'
,他们使用了双引号"
,所有这些都是json
文件。你也错过了一行,
:
"cwd": "/var/www/MyApp/",
删除跟踪/
:public/images/
所以这是你的process.json
文件,它应该是你项目的根目录:
{
"apps": [{
"name": "pm2_checking_server",
"script": "server.js",
"cwd": "/var/www/MyApp/",
"watch": ["server.js"],
"ignore_watch": ["public/images"],
"watch_options": {
"followSymlinks": false
}
}]
}