nodemon + express, слушайте port =?
Я создаю простой проект узла с помощью express:
npm install -g express-generator
express test
cd test/ && npm install
PORT=3000 npm start
так это получает тестовое приложение и работает на порту 3000. Отличный. Теперь я хотел бы использовать nodemon
для запуска этого проекта. Я установил его:
npm install -g nodemon
в gihub README он запускается так же, как и узел. Это немного запутанным, потому что новый способ запуска узла npm start
не node
. Поэтому я попробовал:
$ PORT=3000 nodemon ./app.js
13 May 23:41:16 - [nodemon] v1.0.18
13 May 23:41:16 - [nodemon] to restart at any time, enter `rs`
13 May 23:41:16 - [nodemon] watching: *.*
13 May 23:41:16 - [nodemon] starting `node ./app.js`
13 May 23:41:16 - [nodemon] clean exit - waiting for changes before restart
но когда я пытаюсь подключиться, там ничего нет. Я подтвердил, что с:
lsof -i TCP:3000
который ничего не вернул. Обычно (с npm start
) возвращает:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 18746 user 10u IPv4 433546 0t0 TCP *:3000 (LISTEN)
может ли кто-нибудь сказать, что здесь не так?
Как можно заставить приложение прослушивать указанный порт с помощью nodemon
?
Мои настройки:
npm -v
1.3.21
node -v
v0.10.24
nodemon -v
v1.0.18
express -V
4.2.0
4 ответов
на .в JSON
"scripts":{
// "start": "node ./bin/www"
"start": "nodemon ./bin/www"
}
теперь будет эквивалентно следующее:
$ npm start
$ nodemon ./bin/www
Это также работает: включите это в свое приложение.js (он делает то же самое, что и neolivz4ever)
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
console.log('Express server listening on port ' + server.address().port);
});
кроме того, несколько раз, порт просто в использовании. Если другие решения не работают для вас, попробуйте изменить порт. Он может использоваться для другого экземпляра узла.