Soy extremadamente nuevo en Node y trato de entender los conceptos básicos de la aplicación. Tengo curiosidad por saber por qué estos dos comandos:
aplicación de nodo.js
--vs--
inicio de npm
envía lo mismo a la consola y parece que continúa "escuchando", pero ¿por qué cuando intento acceder a http://localhost:3000 obtengo un 404 solo cuando ejecuto el primer comando?
Veo que Express 4 parece tener una estructura de aplicación diferente, pero ¿por qué uno escucha con éxito y el otro no, a pesar del mismo comportamiento en la consola?
Cualquier explicación es útil. ¡Gracias!
Los dos de estos comandos no son necesariamente los mismos. npm start ejecuta lo que dice la configuración del script 'start' para ejecutarse como se define en su 'package.json', node app.js ejecuta el archivo 'app.js' en 'node'. Consulte http://browsenpm.org/package.json para obtener más información. Entonces, si tuviera el siguiente paquete.json, los comandos son completamente diferentes.
{ "name": "my cool node project", .... "scripts": { "start": "node index.js" } .... }El siguiente paquete.json es lo que querrá que sean idénticos.
{ "name": "my cool node project", .... "scripts": { "start": "node app.js" } .... }Comenzaría verificando qué está configurado para ejecutar el script de 'inicio' e intentaría ejecutar el mismo comando directamente en su CLI en lugar de a través de NPM para ver dónde está la diferencia.
pero ¿por qué uno escucha con éxito y el otro no?
Si el servidor devuelve un 404, esto sugeriría que el servidor está escuchando, pero la raíz del documento o los permisos de acceso no se están configurando correctamente, por lo que devuelve una respuesta de "Archivo no encontrado".
Además de la respuesta anterior, me gustaría agregar un punto:
Hacer npm start sin tener una porción de scripts en su package.json dará como resultado que npm busque server.js en ese directorio, si lo encuentra, ejecútelo usando node server.js , de lo contrario arrojará npm ERR! missing script: start secuencia de npm ERR! missing script: start como el mensaje de error.
Documentación: npm-inicio
Algunas cosas más que me gustaría agregar, pueden ayudar a la audiencia futura
En primer lugar
Nodo : es tiempo de ejecución para cualquier código javascript
NPM es un administrador de paquetes, que se puede usar para descargar/actualizar/ejecutar paquetes y muchos más, que consta de 3 cosas
Lea aquí para ver todo lo que hace por usted.
node any.js : esto simplemente ejecutará el archivo javascript "any,js". Entonces, si no hay un código allí para iniciar un servidor, obtendrá un error
npm start : ejecutará el comando de inicio en el paquete.json. Para un ejemplo muy básico, si a continuación se encuentra el script de inicio en su paquete.json
Simplemente imprimirá "Hola" en la consola.
si crea una aplicación de reacción usando CRA, generalmente tendrá " inicio de scripts de reacción " en esta sección. Lo que configura el entorno de desarrollo e inicia un servidor, así como la recarga del módulo en caliente
Esa es la razón por la que no obtienes un error en este caso.