web-dev-qa-db-fra.com

nodemon + express, listen port =?

Je crée un projet de nœud simple en utilisant express:

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

Ainsi, l'application de test est opérationnelle sur le port 3000. Génial. Maintenant, j'aimerais utiliser nodemon pour exécuter ce projet. Je l'ai installé:

npm install -g nodemon

Dans le gihub README, il est exécuté de la même manière que node. C'est un peu déroutant, car la nouvelle méthode de démarrage du noeud est npm start et pas node. Alors j'ai essayé:

$ 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

Mais quand j'essaie de me connecter, il n'y a rien. J'ai confirmé cela avec:

lsof -i TCP:3000

Ce qui n'a rien rendu. Normalement (avec npm start), il retourne:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    18746 user   10u  IPv4 433546      0t0  TCP *:3000 (LISTEN)

Quelqu'un peut-il dire ce qui ne va pas ici? Comment est-il possible d'obtenir l'application à écouter sur le port spécifié avec nodemon?

ma configuration:

npm -v
1.3.21
node -v
v0.10.24
nodemon -v
v1.0.18
express -V
4.2.0
44
tivoni

dans package.json

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

ce qui suit serait maintenant équivalent:

$ npm start
$ nodemon ./bin/www
95
Neo

Cela fonctionne aussi: Incluez ceci dans votre app.js (il fait la même chose que le dit 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);
});
10
swanson_ron

vous aussi, utilisez vous définissez votre pour nodemon:

$ nodemon --debug ./bin/www 3000

3
Dung Vu

De plus, le port est parfois utilisé. Si les autres solutions ne vous conviennent pas, essayez de changer le port. Il peut être utilisé pour une autre instance de noeud.

0
Tiago Gouvêa