Je suis nouveau sur Node.js, essayez d’exprimer express pour créer ma première application Web. Je me suis retrouvé bloqué sur mon tout premier exemple de code et j'ai besoin d'aide pour le faire fonctionner. Avant de poster cette question, j’ai effectué une recherche sur le débordement de la pile, j’ai trouvé des questions similaires, mais je n’arrivais toujours pas à le résoudre.
Erreur: impossible de trouver le module 'express'
J'utilise mac os 10.8.2. J'ai Node.js installé en utilisant nvm
.
node.js: 0.8.20 chemin du noeud: /Users/feelexit/nvm/v0.8.20/bin/node chemin pour exprimer:/Users/feelexit/nvm/node_modules/express
voici mon exemple de code: ce fichier se trouve à:
/ Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('welcome to express');
});
app.listen(3000);
quand j'essaie d'exécuter cette commande node index.js
Je reçois le message d'erreur suivant, aidez-moi s'il vous plaît à le réparer.
Je vous remercie.
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$
Mise à jour pour répondre à la question de chovy:
feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/feelexit/npm-debug.log
npm ERR! not ok code 0
Ça dit
Cannot find module 'express'
Avez-vous express installé? Sinon, lancez ceci.
npm install express
Et lancez à nouveau votre programme.
Après avoir exprimé dans votre terminal, alors faites
npm install
Pour installer toutes les dépendances.
Ensuite, vous pouvez faire application de noeud pour exécuter le serveur.
Vérifiez si vous avez installé le module express
. Sinon, utilisez cette commande:
npm install express
et si votre répertoire node_modules
se trouve à un autre endroit, définissez la variable NODE_PATH
envirnment:
set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
npm install --save express
l'installation de npm à partir de votre répertoire d'application résoudra le problème car tout le nécessaire sera installé.
Déterrer un ancien fil ici MAIS j'avais cette même erreur et j'ai résolu en accédant au répertoire dans lequel mon NodeApp réside et en exécutant npm install -d
Votre module express est situé dans un répertoire différent de celui de votre projet. C'est probablement le problème puisque vous essayez de require()
le localement. Essayez de déplacer votre module express de / Users/feelexit/nvm/node_modules/express à / Users/feelexit/WebstormProjects/learnnode/node_modules/express. Cette information peut vous donner plus de détails sur les structures de fichiers node_module.
si votre fichier principal est situé à /Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
, alors Express doit être situé à /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules
, car le noeud recherche toujours les modules dans ./node_modules
(et son dossier interne) lorsque le chemin ne commence pas par ./
ou /
( plus d'informations ici )
je pense que vous manquez votre fichier principal dans le dossier du module
pour ce scénario, exécutez la commande npm install express à l'aide de l'invite cmd du dossier dans lequel vous souhaitez exécuter le programme. Exemple Je souhaite exécuter le programme de module express server.js dans F:\nodeSample. Donc, lancez "npm install express" dans ce dossier particulier, puis lancez server.js
Sauf si vous définissez Node_PATH, la seule autre option consiste à installer express dans le répertoire de l'application, comme npm install express --save
. Express est peut-être déjà installé mais node
ne peut pas le trouver pour une raison quelconque
Dans de rares cas, le cache npm peut être corrompu. Pour moi, ce qui a fonctionné a été:
npm cache clean --force
En règle générale, le gestionnaire de paquets détecte la corruption et extrait de nouveau lui-même, ce qui n'est généralement pas nécessaire. Cependant, dans mon cas, Windows 10 est tombé en panne à quelques reprises et je suppose que cela peut être dû à une opération d'extraction. J'espère que ça aide quelqu'un!
Plus d'informations: https://docs.npmjs.com/cli/cache
D:\learn\Node.js\node app.js
module.js:549
throw err;
^
Error: Cannot find module 'body-parser'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
Parfois, la version ne correspond pas à package.json Nous avons résolu le problème en vérifiant le fichier package.json, puis en utilisant les commandes suivantes: npm install [email protected] le problème a été résolu pour moi.
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
Cela se produit en raison d'autorisations manquantes ou de fichiers non liés pendant le fonctionnement de npm.
Cela signifie que l'exécution de npm
étant donné que cet utilisateur ne dispose pas des droits suffisants pour lire/écrire à partir d'un fichier, dans ce cas package.json.
essayez d’ajouter Sudo
avant l’ensemble de la commande - cela devrait résoudre.
$ Sudo npm install -g express
$ Password:*******
Mot de passe serait votre mot de passe administrateur de votre mac.
La balise -g
installera ce module (express) dans le contexte global du nœud - le nœud signifie que le nœud reconnaîtra/devrait reconnaître le module express
à partir de tout fichier js sans devoir fournir un chemin d'accès complet au module utilisé.
J'espère que cela t'aides!!
J'ai eu le même problème. Mon problème était que je devais changer le répertoire du projet Node.js sur la ligne de commande avant d'installer Express.
cd /Users/feelexit/WebstormProjects/learnnode/node_modules/
J'ai rencontré un problème similaire et à la fin, il s'agissait de vieilles dépendances qui perturbaient mon serveur Heroku.
Dans le dossier de mon projet, j'ai exécuté:
npm uninstall
npm install
J'espère que ça aide
Je suppose que c’est un cours du cours de développement Web de Colt Steele ... Je cherchais la même réponse pour expliquer pourquoi j’ai eu cette erreur aussi. Colt ne le dit pas, mais vous prenez le dossier node_module et vous déplacez dans le nouveau dossier dans lequel vous travaillez ... c'est ce qui a fonctionné pour moi.
Exécutez la commande npm install express body-parser cookie-parser multer --save
dans le même répertoire que votre fichier nodejs de code source pour résoudre ce problème. P/s: vérifiez votre répertoire après la commande d'exécution pour en comprendre plus!