web-dev-qa-db-fra.com

Erreur Node.js: impossible de trouver le module express

J'ai écrit ma première application node.js, mais elle ne trouve pas de bibliothèque express:

C:\ChatServer\Server>node server.js

module.js:340
    throw err;
          ^
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:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\ChatServer\Server\server.js:6:9)
    at Object.<anonymous> (C:\ChatServer\Server\server.js:25:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

Mais express est installé (avec la touche -g):

C:\ChatServer\Server>npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/connect/2.7.11
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/connect/2.7.11
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http 304 https://registry.npmjs.org/send/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No readme data.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/send/0.1.1
npm http 304 https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
C:\Users\Dmitry\AppData\Roaming\npm\express -> C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express\bin\express
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
[email protected] C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

Des informations:

C:\ChatServer\Server>npm --version
1.2.24

C:\ChatServer\Server>node --version
v0.10.9

C:\ChatServer\Server>npm --version
1.2.24

C:\ChatServer\Server>npm ls -g installed express
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
C:\Users\Dmitry\AppData\Roaming\npm
└── [email protected]


C:\ChatServer\Server>npm ls installed express
C:\ChatServer\Server
└── (empty)

Comment puis-je résoudre ce problème? (MUST Je l'installe sans -g?)

122
Dmitry

Vous devez installer Express localement dans le contexte de votre application (dossier node_modules]):

$ npm install express

La raison en est que les applications recherchent toujours des dépendances dans leur contexte local. L'installation globale sert uniquement à configurer des fichiers binaires disponibles à l'échelle du système, tels que les lanceurs de tests d'unités ou les fichiers d'amorçage, etc.

Avec Express, lorsque vous l'installez au niveau mondial, vous obtenez un binaire express qui peut bootstrap une application pour vous. Pour plus d'informations, tapez

$ express --help

Donc, pour répondre à votre dernière question: OUI, vous devez l’installer sans -g.

248
Golo Roden

Pour moi, cela a fonctionné une fois installé, exprès localement avec l'option --save comme suit:

$ npm install express --save
18
Mustafamg

Vérifiez que vous n'êtes pas installé dans le module express, 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%
10
Reza Ebrahimi

Golo a bien expliqué la solution, mais je pourrais ajouter une précision:
parfois des modules de nœuds sont installés dans

/usr/local/lib/node_modules

et lorsque vous lancez le noeud, les modules blabla.js sont recherchés dans

/lib

Une solution consiste donc à créer un lien symbolique:

Sudo ln -s /usr/local/lib/node_modules/ /lib/node_modules
5
Luca Davanzo

Dans votre cas, votre module express est installé sous C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express, mais vous devez le placer dans votre répertoire de projet. Vous devez donc copier le fichier les dossiers du module express de C:\Users\Dmitry\AppData\Roaming\npm\node_modules\ dans le répertoire de votre projet en tant que: C:\ChatServer\Server\node_modules. Si vous n'avez pas de dossier nommé "node_modules" dans votre dossier de projet, créez-le d'abord et collez ces fichiers dans ce dossier. Cette méthode a fonctionné pour moi sur mon PC Windows. Redémarrez votre serveur de noeuds et exécutez à nouveau la commande node C:\ChatServer\Server>node server.js. Cela devrait fonctionner maintenant !!!!

4
Rahul Gupta

Sur un système d'exploitation basé sur Ubuntu, vous pouvez essayer

Sudo apt-get install node-express

ça marche pour moi à la menthe

3
Nickolay Savchenko

Si vous avez installé le noeud sur votre système, installez Express localement pour votre projet en utilisant les éléments suivants pour Windows:

npm install express

o

npm install express --save

Vous pouvez lui donner un accès global en utilisant:

npm install -g express --save
2
kg11

J'ai eu cette erreur dans vscode, bien que les modules aient été installés. J'utilise TypeScript et express. Dans les fichiers server.ts, toutes les importations portaient un soulignement ondulé rouge. Il se trouve que j'avais un fichier tsconfig.json défectueux.

{
    "compileOnSave": false,
    "compilerOptions": {
        "module": "commonjs", // Previously this value was `es6`
        "target": "es6",
        "allowSyntheticDefaultImports": true,
        "baseUrl": "public",
        "sourceMap": true,
        "outDir": "dist",
        "jsx": "react",
        "strict": true,
        "preserveConstEnums": true,
        "removeComments": true,
        "noImplicitAny": true,
        "allowJs": true
    },
    "exclude": [
        "node_modules",
        "build"
    ]
}
2
Adrian Moisa

allez dans le répertoire de votre application et installez le module express à l'aide de la commande ci-dessous npm install express --save puis répertoriez tous les modules d'installation à l'aide de la commande ci-dessous npm ls vous verrez tous les modules installer localement.

1
Anayatullah Khan

créez un dossier dans votre disque dur, par exemple sample1, puis accédez à la commande Type d’invite: cd. Indiquez le chemin du dossier sample1, puis installez tous les modules ...

npm install express

npm installer jade

npm installer socket.io

et tout ce que vous créez enregistrez l'application dans le dossier sample1

essayez-le ...

1
Dev

Je frappe le même problème. J'avais exprès installé globalement à/usr/local/bin /. Quand je fais 'npm install', express n'a pas été créé dans node_modules du répertoire local.

  1. Vérifiez si vous avez le nom de fichier .npmrc dans votre $ HOME
  2. Si elle a 'global = true', changez en 'global = false'
  3. Maintenant, faites 'npm install' dans le répertoire de l'application. Plus probablement, vous devriez installer tous les modules dépendants du paquet dans node_modules (local) dans le répertoire de l'application.
0
user2512153
  • Nœud de désinstallation de bière Sudo
  • mise à jour de la bière
  • mise à niveau de la bière
  • nettoyage de la bière
  • brassez le noeud d'installation
  • Sudo chown -R $ (whoami)/usr/local
  • lien brassage - noeud d'écriture
  • Nœud post-installation de brassage Sudo

Cela a fonctionné pour moi sur MacOS X Sierra

0
Durul Dalkanat