Pm2 watch ignore не игнорирует загрузку файлов / изображений - PullRequest
0 голосов
/ 06 апреля 2019

Я хочу загрузить изображение, используя узел (11.10.1), pm2 (3.4.0), через Ubuntu 16.04.Как и многие другие, кто пытался, я могу получить изображение от запуска моего сервера через процесс узла, но как только я использую PM2 для загрузки изображения, PM2 перезагружает сервер, и изображение не загружается.

Я создал экосистему и установил различные типы настроек, такие как, смотреть, игнорировать, автоматический сброс, cwd.Я также попробовал строку кода cli, где это "sudo pm2 start server.js --ignore-watch" / public / images ". Я не уверен, как правильно игнорировать Pm2. Я также убедился, что я делаюУ меня есть путь к файлу в Myapp / public / images /

Я пробовал следующее: Multer загружать файлы с PM2 Expressjs pm2 игнорировать смотреть папку public / images 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 / маршруты /

destination: function (req, files, cb) {

      cb(null, path.join(__dirname , '../public/images'))
}

Я ожидаю, что Pm2 проигнорирует загрузку наблюдаемого файла, но ответ, полученный от загрузки изображения, будет "errno": -13, "code": "EACCES", "syscall": "open", "путь": "/ var / www / MyApp / public / images / 7ylxlncRKJ

спасибо за помощь!

1 Ответ

0 голосов
/ 06 апреля 2019

Насколько я вижу, разница с официальными примерами в том, что вы используете одинарную кавычку ', а они использовали двойную кавычку ", ведь это файл 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
        }
    }]
}
...