Ответ 1
в package.json
"scripts":{
// "start": "node ./bin/www"
"start": "nodemon ./bin/www"
}
теперь будет эквивалентно следующее:
$ npm start
$ nodemon ./bin/www
Я создаю простой проект 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
в package.json
"scripts":{
// "start": "node ./bin/www"
"start": "nodemon ./bin/www"
}
теперь будет эквивалентно следующее:
$ npm start
$ nodemon ./bin/www
Это также работает: Включите это в свой 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);
});
Вы также используете определить свой для nodemon:
$ nodemon --inspect./bin/www 3000
Кроме того, несколько раз порт используется. Если другие решения не сработают для вас, попробуйте изменить порт. Он может использоваться для некоторого другого экземпляра node.
Если вы ищете способ указать номер порта с помощью nodemon + express-generator, перейдите в bin/www и измените строку
var port = normalizePort(process.env.PORT || '3000');
на конкретный номер. Например,
var port = normalizePort(process.env.PORT || '1234');