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


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.


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.


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%

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


11

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


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


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


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.


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


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


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!


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


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


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!!


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/

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.


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 body-parser@1.13.2 il a résolu pour moi.


0

As-tu essayé

npm install

Si vous recherchez spécifiquement juste express

npm install --save express
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.