Node.js - Немагчыма запусціць сервер вузла з выкарыстаннем назаўжды

Я спрабую запусціць сервер вузла з выкарыстаннем назаўжды каманднага радка. Я усталяваў назаўжды ва ўсім свеце з дапамогай:

npm install forever -g

Пасля ўстаноўкі назаўжды я спрабую запусціць мой сцэнар вузла з дапамогай наступнай каманды:

node_modules\.bin\forever start app.js

Ніжэй мая кансоль:

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up f
or at least 1000ms
info:    Forever processing file: app.js

Калі ласка, дапамажыце мне вырашыць гэтую праблему!

22
вы паспрабуйце назаўжды спіс , каб убачыць, калі ваш app.js працуе?
дададзена аўтар Evan P, крыніца
(Выбачайце за спам), калі ўбачыць вашыя app.js ў назаўжды спіс спіс, і ўсё ж вы ўсё яшчэ думаеце, што яна не працуе, адкрыйце файл часопіса, назаўжды мае стварыць, каб убачыць калі якая-небудзь памылка.
дададзена аўтар Evan P, крыніца
што ў свой файл app.js?
дададзена аўтар AndyD, крыніца

7 адказы

Калі вы ўсталявалі модуль globaly (опцыя -g) «назаўжды» знаходзіцца ў $ PATH

forever start app.js

павінен працаваць.

7
дададзена
Каманда «назаўжды пачаць app.js» кідае паведамленне, якое я адправіў!
дададзена аўтар S Singh, крыніца

Там няма ніякіх праблем тут акрамя папярэджання для конфігаў назаўжды рэкамендуе аб'явіць. Калі вы бачыце канчатковае паведамленне там ён кажа вам, што перапрацаваў сцэнар. Проста запусціце назаўжды спіс , і вы ўбачыце, што ваш скрыпт працуе.

Я сутыкнуўся з гэтым жа самым пры ўсталёўцы NPM праз ні рэпазітара ( ня ўсталяваць НПЙ ), а затым ўсталяваць назаўжды ў той час, калі я ўсталяваць вузел і НПЕ з дапамогай сцэнарыяў абалонкі, а затым ўсталяваць назаўжды гэта не адбываецца. Ён павінен нешта рабіць з формуламі для усталявальнага пакета або патэнцыйна адсутны псеўданім са сцягамі з усталёўшчыкам, каб усталяваць гэтыя значэння за сцэнай.

Тыя, не азначае, што яна не працуе. Ніжэй я стварыў файл JS, выкарыстоўваючы прыклады кода з сайта вузла і запусціў яго ўручную (я пачырванела брандмаўэр, каб адкрыць порт для прыкладання часова, але вам гэта не трэба):

[[email protected] ~]# vi example.js
[[email protected] ~]# apf -f
apf(23924): {glob} flushing & zeroing chain policies
apf(23924): {glob} firewall offline
[[email protected] ~]# node example.js 
Server running at http://127.0.0.1:1337/

Я затым запусціць прыкладанне, выкарыстоўваючы назаўсёды:

^C[[email protected] ~]# forever start example.js 
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: example.js

Цяпер я правяраю, калі маё прыкладанне працуе:

[[email protected] ~]# forever list
info:    Forever processes running
data:        uid  command       script     forever pid   logfile                 uptime       
data:    [0] dan1 /usr/bin/node example.js 23976   23978 /root/.forever/dan1.log 0:0:0:27.320 
[[email protected] ~]#
6
дададзена
Частку я прапускаў быў той факт, паведамленне Вечна апрацоўкі файла: app.js азначае, што ён працаваў. Я не разумеў, што файл быў апрацаваны ў фонавым рэжыме, і вы павінны былі зрабіць назаўжды спіс , каб убачыць працэсы. Цяпер у мяне ёсць 4 працуе, таму што я паспрабаваў гэта зноў і зноў. Ха-ха.
дададзена аўтар kentcdodds, крыніца
Але гэтыя змены не адлюстроўвае, калі я абнавіць маю вэб-старонку пасля ўнясення некаторых змяненняў у заднім канцы кода ў app.js
дададзена аўтар Ankur Marwaha, крыніца

Гэта вырашыла маю праблему:

forever start -c node [path/to/app]

"-C" азначае - Run commnad; а затым проста запусціць праз nodejs

Такім чынам - вы атрымаеце Respawn па змаўчанні мін. 1000мс Правёў

Ўзята з: https://github.com/nodejitsu/forever/issues/422 , па «Basarat»

1
дададзена

Першы прыпынак усіх запушчаных прыкладанняў:

forever stopall

затым выкарыстоўваць гэтую каманду. Гэта працуе для мяне, і вырашыць маю праблему:

forever -w ./bin/www

і вы павінны знайсці гэта ў package.json файле:

"scripts": {
    "start": "node ./bin/www"
  }

Я спадзяюся, што гэта дапамагае.

1
дададзена

Калі вы выкарыстоўваеце вузел JS з экспрэс-рамкі, то скрыпт не запускаецца з дапамогай:

forever start app.js

Першы прыпынак усіх запушчаных прыкладанняў:

forever stopall

Калі гэтая сістэма экспрэс выкарыстоўваецца яна павінна быць запушчана з:

forever start ./bin/www
0
дададзена
<�Р> Па-першае, змяніць package.json сцэнары як
"scripts": {
      "start": "forever ./bin/www.js"
 }
<�Р>, чым запусціць гэтую каманду на Linux кансолі: Sudo НПМ старт      <�Р> для вокнаў проста: НПМ старт
0
дададзена

Адна рэч, якая таксама вырабляе такі ж выснова, але не запускаецца дадатак, калі назаўжды не можа запісаць у правераны файл часопіса. У мяне быў выпадак, калі файл часопіса стаў занадта вялікім, і гэта перашкаджала працэсу заводзіцца.

0
дададзена