node.js, Erreur: impossible de trouver le module 'express'

125

Je suis nouveau sur Node.js, essayez d'apprendre express pour créer ma première application Web. Je suis resté bloqué sur mon tout premier exemple de code et j'ai besoin d'aide pour le faire fonctionner. Avant de publier cette question, j'ai fait une recherche sur le débordement de pile, trouvé des questions similaires mais je ne pouvais toujours pas y remédier.

Erreur: impossible de trouver le module «express»

J'utilise mac os 10.8.2 . J'ai installé Node.js en utilisant nvm.

node.js: chemin d'accès au nœud 0.8.20: /Users/feelexit/nvm/v0.8.20/bin/node chemin à 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'essaye d'exécuter cette commande node index.js

Je reçois le message d'erreur suivant, aidez-moi à 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!     <npm-@googlegroups.com>

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
qinking126
la source
Peut-être que cela aidera stackoverflow.com/questions/9133784/…
user568109
30
Avez-vous npm install
tapé
1
Êtes-vous certain que la bibliothèque express se trouve dans votre dossier "node_modules"? Vous pouvez également essayer de déplacer votre fichier index.js vers le haut d'un répertoire vers «/ Users / feelexit / WebstormProjects / learnnode /» et laisser le dossier node_modules seul.
Par défaut le
1
Veuillez poster votre package.jsondossier. Cela aidera à déboguer le problème.
Akhil Raina
@chovy, j'utilise npm install express pour installer express. que fait seulement "npm install"?
qinking126

Réponses:

157

Ça dit

 Cannot find module 'express'

Avez-vous installé express? Sinon, exécutez-le.

 npm install express

Et exécutez à nouveau votre programme.

Saurabh Rana
la source
1
Cela ne résout pas le problème dans mon cas. npm install expressmontre cette erreur npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. Semble être un problème plus profond.
Sliq
Utilisez sudo si vous n'avez pas corrigé vos autorisations de répertoire pour npm. Dans tous les cas, "sudo npm install" est une meilleure option.
Gaurav Gupta
Des erreurs de lien symbolique se produisent souvent, si vous avez installé des choses globalement et, oui, le lien symbolique s'est rompu. Essayez npm linkde recréer le lien respectif ...
Frank Nocke
@Sliq J'ai essayé votre solution mais je ne peux pas résoudre mon problème, pouvez-vous m'aider?
VjyV
N'oubliez pas «Et relancez votre programme». Dans mon cas, j'ai dû redémarrer le processus dans mon process manager. Il n'a pas redémarré tout seul.
Tadej
42

Une fois que vous avez exprimé dans votre terminal, faites

 npm install

Pour installer toutes les dépendances.

Ensuite, vous pouvez faire une application de nœud pour exécuter le serveur.

Facture
la source
7
Vous devez souligner que cela nécessite un fichier de liste de paquets, à savoir .json .. Et ce n'est pas toujours le cas.
Pogrindis
@VjyV dans le même répertoire que vous avez votre fichier de nœud .js. Mais il doit avoir le fichier package.json dans le répertoire pour pouvoir installer les dépendances requises.
Saurabh Rana
34

Vérifiez si vous avez installé le expressmodule. Sinon, utilisez cette commande:

npm install express

et si votre node_modulesrépertoire est à un autre endroit, définissez la NODE_PATHvariable d'environnement:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
Reza Ebrahimi
la source
12
C'est la bonne réponse, pour tout le monde qui publie ces CTRL+C / CTRL+V npm installréponses: pensez-vous vraiment que quelqu'un essaierait d'exécuter quelque chose sans vérifier s'il est installé en premier? Sérieusement ...
Claudio Holanda
3
Ajout d'un petit détail: vous devez exécuter la commande install express dans le répertoire de votre application et non dans votre dossier d'installation Node.js ou le dossier npm dans AppData. Parce que c'est l'erreur que j'ai faite, parce que je pensais que c'était une sorte d'add-on SDK.
Alex
29

 npm installer - enregistrer express   
Cela a fonctionné pour moi, il suffit de relancer l'installation express.js

Bonface Ochieng
la source
11

npm install à partir du répertoire de votre application résoudra le problème car il installera tout ce qui est nécessaire

Eldad
la source
5

Creuser un ancien fil ici MAIS j'ai eu cette même erreur et j'ai résolu en naviguant vers le répertoire dans lequel mon NodeApp réside et en cours d'exécution npm install -d

Wjdavis5
la source
Je ne sais pas pourquoi ni en quoi cela compte, mais cela l'installe dans vos dépendances de développement: docs.npmjs.com/cli/install
Guy Lowe
1
@GuyLowe -dest le débogage pour npm, ce -Dsont les dépendances dev.
John Pavek
4

Sauf si vous définissez Node_PATH , la seule autre option est d'installer express dans le répertoire de l'application, comme npm install express --save. Express peut déjà être installé mais nodene peut pas le trouver pour une raison quelconque

Shemogumbe
la source
Celui-ci a fonctionné pour moi, il vaut mieux exécuter la commande d'installation dans le même répertoire que vos fichiers .js. Vous pouvez également exécuter la commande "npm init" pour créer le fichier package.json afin d'éviter d'autres problèmes.
emarshah
3

Votre module express se trouve dans un répertoire différent de celui de votre projet. C'est probablement le problème puisque vous essayez de le require()faire localement. Essayez de déplacer votre module express de / Users / feelexit / nvm / node_modules / express vers / Users / feelexit / WebstormProjects / learnnode / node_modules / express . Ces informations peuvent vous donner plus de détails sur les structures de fichiers node_module.

Défaut
la source
2

si votre fichier principal est situé à, /Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsalors express doit être situé à /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modulescar le nœud 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 placé votre fichier principal dans le dossier du module

VeXii
la source
2

pour ce scénario, exécutez la commande npm install express en utilisant votre invite cmd pour le dossier respectif dans lequel vous souhaitez exécuter le programme. Exemple Je veux exécuter le programme de module express server.js dans F: \ nodeSample. Alors lancez "npm install express" dans ce dossier particulier puis lancez server.js

Rijo
la source
1

Exécutez la npm install express body-parser cookie-parser multer --savecommande dans le même répertoire avec votre fichier nodejs de code source pour résoudre ce problème. P / s: vérifiez votre répertoire après l'exécution de la commande pour en savoir plus!

Do Tat Hoan
la source
1

Dans de rares cas, le cache npm peut être corrompu. Pour moi, ce qui a fonctionné était:

npm cache clean --force

En règle générale, le gestionnaire de packages détecte la corruption et effectue une récupération par lui-même, ce qui n'est généralement pas nécessaire. Cependant, dans mon cas, Windows 10 s'est planté à quelques reprises et je suppose que cela peut avoir été lors d'une opération de récupération. J'espère que cela aide quelqu'un!

Plus d'informations: https://docs.npmjs.com/cli/cache

Jwerner
la source
1

J'ai rencontré un problème similaire et à la fin c'était une question d'anciennes dépendances qui gâchaient mon serveur Heroku.

Dans le dossier de mon projet, j'ai exécuté:

npm uninstall
npm install

J'espère que ça aide

HClx
la source
0

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

Cela se produit en raison d'autorisations manquantes ou de fichiers dissociés pendant que npm fonctionnait.

Cela signifie que l'exécution en npmtant que cet utilisateur n'a pas assez de droits pour lire / écrire à partir d'un fichier, dans ce cas package.json.

essayez d'ajouter sudoavant la commande entière - cela devrait résoudre.

$ sudo npm install -g express
$ Password:*******

Le mot de passe serait votre mot de passe administrateur de votre mac.

-gflag installera ce module (express) dans le contexte global du nœud - ce qui signifie que le nœud reconnaîtra / devrait reconnaître le expressmodule depuis n'importe quel fichier js sans avoir à fournir un chemin complet vers le module utilisé.

J'espère que cela t'aides!!

brouiller
la source
0

J'ai eu le même problème. Mon problème était que je devais passer au répertoire du projet Node.js sur la ligne de commande avant d'installer express.

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/
user3377708
la source
0

Je suppose que c'est un cours du cours de développement Web de Colt Steele ... Je cherchais la même réponse quant à la raison pour laquelle j'ai fini avec cette erreur aussi .. Colt ne le dit pas mais vous prenez le dossier node_module et déplacez dans le nouveau dossier dans lequel vous travaillez ... c'est ce qui a fonctionné pour moi.

Bibi DeLeon
la source
0
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. Correction du problème en vérifiant le package.json puis utilisez les commandes suivantes: npm install [email protected] il a résolu pour moi.

Sarath Kumar
la source
0

As-tu essayé

npm install

Si vous recherchez spécifiquement juste express

npm install --save express
Akash Yellappa
la source