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);
});

Вы тоже используете define your for nodemon:

$ nodemon --debug ./bin/www 3000


кроме того, несколько раз, порт просто в использовании. Если другие решения не работают для вас, попробуйте изменить порт. Он может использоваться для другого экземпляра узла.