node.js - reconoce - nodemon+express, escucha puerto=?
nodemon no se reconoce como un comando interno o externo (4)
Además, algunas veces, el puerto está en uso. Si las otras soluciones no funcionan para usted, intente cambiar el puerto. Puede estar en uso para alguna otra instancia de nodo.
Creo un proyecto de nodo simple usando express:
npm install -g express-generator
express test
cd test/ && npm install
PORT=3000 npm start
Así que esto pone la aplicación de prueba en funcionamiento en el puerto 3000. Genial. Ahora me gustaría usar nodemon
para ejecutar este proyecto. Lo he instalado:
npm install -g nodemon
En el README de gihub se ejecuta de la misma manera que el nodo. Esto es un poco confuso, porque la nueva forma de iniciar el nodo es npm start
no node
. Así que lo intenté:
$ 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
Pero cuando trato de conectarme, no hay nada allí. Confirmé eso con:
lsof -i TCP:3000
Lo cual no devolvió nada. Normalmente (con npm start
) regresa:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 18746 user 10u IPv4 433546 0t0 TCP *:3000 (LISTEN)
¿Alguien puede decir qué está mal aquí? ¿Cómo es posible hacer que la aplicación escuche en el puerto especificado con nodemon
?
mi configuración:
npm -v
1.3.21
node -v
v0.10.24
nodemon -v
v1.0.18
express -V
4.2.0
Esto también funciona: incluye esto en tu app.js (hace lo mismo que dijo el 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);
});
en package.json
"scripts":{
// "start": "node ./bin/www"
"start": "nodemon ./bin/www"
}
lo siguiente sería ahora equivalente:
$ npm start
$ nodemon ./bin/www
tú también utilizas define tu para nodemon:
$ nodemon --debug ./bin/www 3000