example - Learning node.js/express.js: ¿Cuál es el problema con bin/www?
node js express app (2)
He visto tutoriales para Express.js como this que comienza desde cero con su propio archivo app.js
y renuncia al uso del generador Express.
Mi pregunta: para el principiante que está tratando de entender cómo usar estas herramientas y hacer una aplicación web básica, ¿debería preocuparme por bin/www
o debería estar definiendo el puerto en app.js
?
La única funcionalidad que entiendo actualmente en bin/www
es configurar el puerto. ¿Está el generador express simplemente hinchado con la funcionalidad de caso extremo que es demasiado para un principiante?
Aquí está la razón, declarada sucintamente por un mantenedor expreso:
Por lo tanto, puede requerir (''./ app'') de archivos externos y obtener la aplicación Express que no está escuchando en ningún puerto (piense en pruebas de unidad y similares).
app.js
- Contiene todo el middleware (body-parser, morgan, etc) y las rutas.
- exporta objeto de aplicación en el último.
www
- Aquí crea un httpServer y pasa la aplicación como controlador.
var server = http.createServer(app);
- además también establece el puerto
server.listen(port);
- también establece las funciones a llamar si se produce un error al iniciar el servidor:
server.on(''error'', onError);
Explicación : básicamente, elimina todo el código de crear e iniciar servidor de su app.js y le permite concentrarse solo en la parte lógica de la aplicación. Nota: Si ves en el archivo package.json
, package.json
esto:
"scripts": {
"start": "node ./bin/www"
}
esto significa que si escribe en terminal npm start
, se iniciará automáticamente el archivo ./bin/www
.