web-dev-qa-db-fra.com

Nodejs Impossible de trouver le module

J'obtiens une erreur en essayant d'utiliser n'importe quel module global, Exemple:

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> (C:\BitNami\wappstack\...\test\app.js)
    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)

J'ai installé la commande express:

npm install -g express

Mon app.js:

var express = require('express');

Et exécutez-le en utilisant la commande windows powershell ou node.js Invite windows:

node app.js

ne sais pas vraiment ce qui ne va pas, je lis quelque chose sur les variables d'environnement dans Windows, est-ce possible?

Résolu/Mise à jour

Le problème était le suivant: les variables d'environnement Windows n'étaient pas configurées pour le dossier npm . Recherchez votre dossier npm et ajoutez le chemin dans les variables d'environnement.

19
Mateus Vahl

Vous devez installer Express localement:

npm install express

Ensuite, exigez-le comme vous l'avez fait:

var express = require('express')
13
Hien Khieu

Juste pour citer ici:

https://www.npmjs.org/doc/files/npm-folders.html

  • Installez-le localement si vous en avez besoin ().
  • Installez-le globally si vous voulez l'exécuter en ligne de commande.
  • Si vous avez besoin des deux, installez-le aux deux endroits ou utilisez npm link.
12
Luca Reghellin

J'obtenais la même erreur sur Windows7/x64 et l'ajout de la suite dans la variable d'environnement a résolu le problème

NODE_PATH=C:\Users\[USERNAME]\AppData\Roaming\npm\node_modules

* Remplacez [USERNAME] par votre nom d'utilisateur actuel

12
Ovais

Je travaille sous Linux, mais lorsque j'ai besoin de l'express, je le fais avec un chemin relatif vers l'emplacement d'installation et tout fonctionne bien:

var express = require('./public/node_modules/express');

Je suis sûr que la même chose fonctionnerait avec un chemin Windows également. Si vous voulez être plus explicite et déclarer un chemin absolu, ce serait une option nucléaire pour vous assurer de toujours savoir exactement à quel endroit votre module est chargé, quel que soit le lieu d'exécution de vos scripts.

Si vous avez toujours un problème après avoir utilisé un chemin explicite, je ne sais pas ce que le problème pourrait être. . . 

3
Brian

une autre option sera d’exécuter npm install --save express

0