Подтвердить что ты не робот

Nodemon + express, слушать порт =?

Я создаю простой проект node, используя выражение:

npm install -g express-generator
express test
cd test/ && npm install
PORT=3000 npm start

Таким образом, это запускает тестовое приложение на порт 3000. Отлично. Теперь я хотел бы использовать nodemon для запуска этого проекта. Я установил его:

npm install -g nodemon

В gihub README выполняется так же, как node. Это немного запутанно, потому что новый способ запуска node - npm start not 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
4b9b3361

Ответ 1

в package.json

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

теперь будет эквивалентно следующее:

$ npm start
$ nodemon ./bin/www

Ответ 2

Это также работает: Включите это в свой app.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);
});

Ответ 3

Вы также используете определить свой для nodemon:

$ nodemon --inspect./bin/www 3000

Ответ 4

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

Ответ 5

Если вы ищете способ указать номер порта с помощью nodemon + express-generator, перейдите в bin/www и измените строку

var port = normalizePort(process.env.PORT || '3000');

на конкретный номер. Например,

var port = normalizePort(process.env.PORT || '1234');