node.js: impossible de trouver le module 'request'

92

J'ai installé le module de requête et j'ai obtenu l'erreur:

module.js:340
    throw err;
          ^
Error: Cannot find module 'request'

J'ai lu tous les articles sur cette erreur et je comprends que c'est parce que les demandes de module ne sont pas globalement trouvées, mais j'ai déjà essayé les 2 suggestions

npm demande d'installation -g

devrait-il l'installer dans / usr / loca / bin? parce que je ne le vois pas là-bas.

et

lien sudo npm

/ usr / local / lib / node_modules / request -> / Users / soulsonic / dev / sandbox / node_test / request

J'ai redémarré le terminal après chaque commande, mais continue à obtenir l'erreur de module introuvable.

mettre à jour

il doit y avoir eu une sorte de conflit dans mon répertoire initial, parce que "npm install request" n'ajoutait pas "request" sous node_modules (il y en a 10 autres là-dedans) .. après avoir basculé vers un nouveau répertoire, cela fonctionnait.

si je l'exécute avec le commutateur -g, je le vois installé dans / usr / local / lib / node_modules / request.

il semble que j'ai juste besoin de mettre à jour mon profil pour que le chemin ci-dessus soit automatiquement ajouté.

Sonic Soul
la source

Réponses:

171

Accédez au répertoire de votre projet

mkdir TestProject
cd TestProject

Faites de ce répertoire une racine de votre projet (cela créera un package.jsonfichier par défaut )

npm init --yes

Installez le module npm requis et enregistrez-le en tant que dépendance de projet (il apparaîtra dans package.json)

npm install request --save

Créer un test.jsfichier dans le répertoire du projet avec le code de l'exemple de package

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body); // Print the google web page.
  }
});

Votre répertoire de projet doit ressembler à ceci

TestProject/
- node_modules/
- package.json
- test.js

Maintenant, exécutez simplement node dans le répertoire de votre projet

node test.js
glukki
la source
1
ouais c'est exactement l'exemple que j'ai suivi. et j'exécute le programme d'installation npm 10 fois maintenant .. dans mon projet de test et en utilisant -g flag. je peux voir node_modules dans mon répertoire de test, mais la requête n'y est pas .. cela continue de me donner cette erreur ..
Sonic Soul
car même si j'ai eu un conflit étrange, ce sont les bonnes étapes à suivre. cela a fonctionné une fois que je l'ai fait à nouveau dans un nouveau répertoire. J'ai ajouté une mise à jour sur ce qui m'est arrivé qui sera probablement rare pour les autres
Sonic Soul
32

Vous devez simplement installer request localement dans votre projet.

Juste cddans le dossier contenant votre fichier js et exécutez

npm install request
SLaks
la source
après "demande d'installation npm", j'ai copié mon app.js dans le dossier de demande et j'ai essayé de courir à partir de là avec le même résultat. et j'aurai besoin de l'utiliser à partir de plus d'un seul projet.
Sonic Soul
@SonicSoul: Vous ne comprenez pas comment fonctionnent les packages de nœuds. require('request')regarde ./node_modules/request, et c'est là que le npm installmet. Vous devez exécuter à npm installpartir du répertoire racine de chaque application et ne jamais toucher le node_modulesdossier vous-même.
SLaks
avant de courir npm install request, vous devez courir npm init. Suivez les invites qui créeront un package.jsondans votre dossier de projet. Ensuite, exécutez npm install -S requestce qui installera à la fois le module de requête dans le dossier node_modules et ajoutera une requête à votre fichier package.json
Noah
@SLaks signifie-t-il que chaque fois que j'installe un package, je dois entrer dans son dossier racine et l'exécuter npm install? pour tous?
Drumnbass
@Drumnbass: Non, npm installinstalle également toutes les dépendances.
SLaks
16

J'ai eu le même problème, pour moi npm install request --save résolu le problème. J'espère que ça aide.


la source
1

Je rencontrais le même problème, voici comment je l'ai fait fonctionner.

terminal ouvert:

mkdir testExpress
cd testExpress
npm install request

ou

sudo npm install -g request // If you would like to globally install.

maintenant n'utilise pas

nœud app.jsou nœud test.js, vous rencontrerez ce problème en le faisant. Vous pouvez également imprimer le problème qui est à l'origine à l'aide de cette commande."node -p app.js"

La commande ci-dessus pour démarrer nodeJs est obsolète. Utilisez plutôt

npm start

Vous devriez voir ça ...

testExpress@0.0.0 start /Users/{username}/testExpress
node ./bin/www

Ouvrez votre navigateur Web et recherchez localhost: 3000

Vous devriez voir l'installation Express (Bienvenue dans Express)

Rakesh Chouhan
la source
1

J'ai rencontré le même problème en l'installant globalement, puis j'essaye de l'installer localement, et ça marche.

Jeorge Washington
la source
1

si vous ne trouvez pas un module, essayez avec l'URI statique, par exemple:

var Mustache = require("/media/fabio/Datos/Express/2_required_a_module/node_modules/mustache/mustache.js");

Cet exemple, exécutez sur Ubuntu Gnome 16,04 de 64 bits, noeud -v: v4.2.6, NPM: 3.5.2 Reportez - vous à: Blog de Ben Nadel

Fabio Andres Pino Gutierrez
la source
0

ReferenceError: Impossible de trouver la variable: require.

Vous avez installé "npm", vous pouvez exécuter normalement le script vers un "localhost" "127.0.0.1".

Lorsque vous utilisez http.clientRequest () avec des "options" dans un "npm", vous devez installer "RequireJS" à l'intérieur du module.

Un module est n'importe quel fichier ou répertoire du répertoire node_modules qui peut être chargé par le nœud. Installez "RequiereJS" pour faire fonctionner le http.clientRequest (options).

Roberto Aprea
la source
0

J'ai essayé d'installer le module localement avec la version et cela a fonctionné !!

npm install request@^2.*

Merci.

shamnas cv
la source