Je suis extrêmement nouveau dans Node) et j'essaie de comprendre les bases de l'application. Je suis curieux de savoir pourquoi ces deux commandes:
noeud app.js
--contre--
npm start
affiche la même chose sur la console et semble continuer à "écouter", mais pourquoi, lorsque j'essaie d'accéder http: // localhost: 30 , je reçois un 404 uniquement lors de l'exécution de la première commande.
Je vois qu'Express 4 semble avoir une structure d'application différente, mais pourquoi l'une écoute-t-elle avec succès et l'autre pas, malgré le même comportement dans la console?
Toute explication est utile. Merci!
Les deux commandes ne sont pas nécessairement les mêmes. npm start
exécute tout ce que dit le script 'start' pour s'exécuter tel que défini dans votre 'package.json', node app.js
exécute le fichier 'app.js' dans 'noeud'. Voir http://browsenpm.org/package.json pour plus d'informations. Donc, si vous aviez le package.json suivant, les commandes sont complètement différentes.
{
"name": "my cool node project",
....
"scripts": {
"start": "node index.js"
}
....
}
Le package.json suivant est ce que vous voudrez rendre identiques.
{
"name": "my cool node project",
....
"scripts": {
"start": "node app.js"
}
....
}
Je commencerais par vérifier ce que le script 'start' est configuré pour exécuter et essayer d'exécuter la même commande directement dans votre CLI plutôt que via NPM pour voir où se situe la différence.
mais pourquoi est-ce que l'un écoute avec succès et l'autre ne
Si le serveur renvoie 404, cela suggère que le serveur est à l'écoute, mais que la racine du document ou les autorisations d'accès ne sont pas configurées correctement, il renvoie donc une réponse "Fichier non trouvé".
En plus de la réponse ci-dessus, j'aimerais ajouter un point:
Faire npm start
_ sans avoir la portion scripts
dans votre package.json
entraînera npm
recherche de server.js
dans ce répertoire, s'il est trouvé, exécutez-le avec node server.js
sinon ça va lancer npm ERR! missing script: start
en tant que message d'erreur.
Il y a peu de choses que j'aimerais ajouter, cela pourrait aider le public à venir
Tout d'abord
Node - est le temps d'exécution pour tout code javascript
NPM est un gestionnaire de paquets, qui peut être utilisé pour télécharger/mettre à jour/exécuter des paquets et bien d’autres, comprenant 3 choses
Lisez ici pour voir tout ce que cela fait pour vous.
node any.js - il s’agira simplement d’exécuter le fichier javascript "any, js". Donc, s'il n'y a pas de code pour démarrer un serveur, vous obtiendrez une erreur
npm start - exécutera la commande de démarrage dans le package.json. Par exemple, le script de démarrage dans votre package.json est très simple.
Il va simplement imprimer "Bonjour" sur la console.
si vous créez une application de réaction à l'aide de CRA, vous aurez généralement "les scripts de réaction commencent" dans cette section. Qui configure l’environnement de développement et démarre un serveur, ainsi que le rechargement de module à chaud
C'est la raison pour laquelle vous ne recevez pas d'erreur dans ce cas