Ошибка запуска приложения паруса с pm2

Я пытаюсь запустить приложение для парусов с помощью pm2, но получаю следующую ошибку:

pm2 start app.js --name myapp -i 2

pm2 logs

[myapp-1 (out) 2014-05-25T13:38:51] info:    Sails              <|
[myapp-1 (out) 2014-05-25T13:38:51] info:    v0.10.0-rc7         |\
[myapp-1 (out) 2014-05-25T13:38:51] info:                       /|.\
[myapp-1 (out) 2014-05-25T13:38:51] info:                      / || \
[myapp-1 (out) 2014-05-25T13:38:51] info:                    ,'  |'  \
[myapp-1 (out) 2014-05-25T13:38:51] info:                 .-'.-==|/_--'
[myapp-1 (out) 2014-05-25T13:38:51] 
[myapp-1 (err) 2014-05-25T13:38:51] debug: Environment : development
[myapp-1 (err) 2014-05-25T13:38:51] debug: Port        : 1338
[myapp-1 (err) 2014-05-25T13:38:51] debug: --------------------------------------------------------
[myapp-1 (err) 2014-05-25T13:38:51] TypeError: Object #<Object> has no method 'addAsyncListener'
[myapp-1 (err) 2014-05-25T13:38:51]   at Server._listen2 (net.js:1095:18)
[myapp-1 (err) 2014-05-25T13:38:51]   at cb (net.js:1139:10)
[myapp-1 (err) 2014-05-25T13:38:51]   at rr (cluster.js:552:5)
[myapp-1 (err) 2014-05-25T13:38:51]   at Worker.<anonymous> (cluster.js:484:9)
[myapp-1 (err) 2014-05-25T13:38:51]   at process.<anonymous> (cluster.js:611:8)
[myapp-1 (err) 2014-05-25T13:38:51]   at process.EventEmitter.emit (events.js:123:20)
[myapp-1 (err) 2014-05-25T13:38:51]   at handleMessage (child_process.js:318:10)
[myapp-1 (err) 2014-05-25T13:38:51]   at Pipe.channel.onread (child_process.js:346:11)

Версия для парусов: 0.10.0-rc7
Версия для pm2: 0.8.6

Кроме того, я не знаю, как установить среду и порт. Я пробовал с --node-args="--prod", но безрезультатно.

Я пробовал с модулем навсегда и отлично работает.

Кто-нибудь знает, как это исправить?
Спасибо.

Изменить
По-видимому, проблема связана с версией node.js.
Я провел несколько тестов и сообщил о проблеме в репозиторий pm2: https://github.com/Unitech/pm2/issues/491.
Любые новости я буду обновлять здесь.


person Victor    schedule 25.05.2014    source источник
comment
--node-args предназначен для аргументов узла V8, а не для вашего скрипта.   -  person Unitech    schedule 27.05.2014


Ответы (3)


--node-args предназначен для аргументов узла V8, а не для вашего скрипта.

Если вы хотите передать аргументы CLI в свой скрипт NodeJS, вы должны сделать

$ pm2 start app.js -- -prod

Каждый аргумент после -- будет передан вашему сценарию.

person Unitech    schedule 27.05.2014

Не уверен насчет ошибки addAsyncListener, но переменные среды должны работать как обычно. Я только что подтвердил это тестом:

$ NODE_ENV=производственный запуск pm2 app.js

В журналах:

[app-1 (out) 2014-05-25T15:27:04] в рабочей среде

person dylants    schedule 25.05.2014
comment
Конечно, рад, что это сработало! Извините, я недостаточно знаком с парусами.js, чтобы понять, в чем была первая проблема. Надеюсь, вы решите это - person dylants; 26.05.2014

Кто-нибудь знает, как я могу это исправить?

Запустите pm2 следующим образом:

pm2 start app.json

где app.json:

{
  "apps": [{

    "name": "app",
    "script": "/full/path/to/app.js",
    "env": {
      "NODE_ENV": "production"
    }
  }]
}

паруса: v.0.11.0, pm2: v.0.12.7

person tsv.titan    schedule 04.03.2015