2014-10-19 1 views
5

Я хочу использовать http-server и forever.js для развертывания моего приложения на удаленном сервере ubuntu. Но forever.js требует пути к файлу JS, а не к исполняемому. Поэтому я не могу передавать ключи на http-сервер. Лучшим решением до сих пор является установка http-сервера локально через npm и запуск чего-то вроде этого: forever start ./node_modules/http-server/bin/http-server. Но в этом случае я не могу установить порт и другие параметры. Какая практика?Разверните узел с помощью http-сервера и навсегда

ответ

8

У меня была та же проблема. Найден узел node.js script, который может запускать команды оболочки и использовать его для запуска команды http-server вместе с параметрами.

пример Node.js сценария под названием 'startserver.js':

var sys = require('sys') 
var exec = require('child_process').exec; 
function puts(error, stdout, stderr) { sys.puts(stdout) } 
exec("sudo http-server -a ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com -p 80", puts); 

Затем вы можете запустить его с помощью навсегда:

forever start startserver.js 
15

Вы можете настроить параметры с помощью этого кода. Просто используйте available flags после окончания вашей команды. Например:

forever start ./node_modules/http-server/bin/http-server -p 80 -d false 
3

Это работало со мной

сначала получить путь HTTP-сервер, как этот

which http-server 

, например, вы получите "/ USR/BIN/HTTP-сервер"

затем после этого напишите навсегда, а затем следуйте по пути http-server и пути к вашему приложению

forever start /usr/bin/http-server /your/app/path 

С уважением.

0

Просмотрите каталог, содержащий ваши файлы И из командной строки введите: forever start -c http-server. -p your_port_number Пример: навсегда начать -c HTTP-сервер -p 8000

Таким образом, порт 8000 будет всегда указывать на HTML-файлы в каталоге.

0

Попробуйте это:

forever start $(which http-server)

+0

Это не дает ответа на этот вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/17850413) – Styx