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
dans package.json
"scripts":{
// "start": "node ./bin/www"
"start": "nodemon ./bin/www"
}
ce qui suit serait maintenant équivalent:
$ npm start
$ nodemon ./bin/www
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);
});
vous aussi, utilisez vous définissez votre pour nodemon:
$ nodemon --debug ./bin/www 3000
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.