2013-05-10 17 views
43

ich request module installiert, und immer den Fehler:node.js: kann nicht Modul ‚request‘ finden

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

ich alle Beiträge zu diesem Fehler gelesen haben, und verstehen, dass dies, weil Modul Anfragen nicht ist global gefunden, aber ich habe bereits versucht, die 2 Vorschläge

npm install request -g

sollte dies in/usr/loca/bin installieren? weil ich es dort nicht sehe.

und

sudo npm link

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

i neu gestartet Terminal nach jedem Befehl, aber halten das bekommen kann nicht Modulfehler finden.

Update

muss es irgendeine Art von Konflikt in meinem ersten Verzeichnis haben, denn „npm Anfrage installiert“ wurde nicht „Anfrage“ unter node_modules Zugabe (es 10 andere da drin) .. nach dem Einschalten zu einem neuen Verzeichnis hat es einfach funktioniert.

Wenn ich es mit dem Schalter -g starte, sehe ich, dass es in/usr/local/lib/node_modules/request installiert ist.

Es scheint, dass ich nur mein Profil aktualisieren muss, so dass der obige Pfad automatisch hinzugefügt wird.

Antwort

80

Zum Verzeichnis des Projekts

mkdir TestProject 
cd TestProject 

Machen Sie dieses Verzeichnis eine Wurzel des Projekts ausgeführt werden (dies wird eine Standard erstellen package.json Datei)

npm init --yes 

Install req uired npm Modul und als Projektabhängigkeit speichern (es wird in package.json erscheinen)

npm install request --save 

erstellen test.js Datei im Projektverzeichnis mit dem Code aus dem Paket Beispiel

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. 
    } 
}); 

Ihr Projektverzeichnis soll wie folgt aussehen

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

Jetzt laufen nur Knoten in Ihrem Projektverzeichnis

node test.js 
+1

Ja, das ist genau das Beispiel, dem ich gefolgt bin. und ich führe jetzt das npm-Installationsprogramm 10 mal aus .. in meinem Testprojekt und benutze -g flag. Ich kann node_modules in meinem Testverzeichnis sehen, aber Anfrage ist nicht dort .. es setzt fort, mir diesen Fehler zu geben. –

+0

@SonicSoul also warum haben Sie die Antwort angenommen? – Drumnbass

+0

denn obwohl ich einen seltsamen Konflikt hatte, sind dies die richtigen Schritte. es funktionierte, sobald ich es wieder in einem neuen Verzeichnis gemacht habe. Ich fügte ein Update zu dem, was mir passiert ist, was wahrscheinlich für andere selten ist. –

17

Sie sollten einfach requestlokal innerhalb Ihres Projekts installieren.

Nur cd in den Ordner Ihre js Datei enthält, und

npm install request 
+0

nach "npm install request" habe ich meine app.js in den Anfrageordner kopiert und versucht von dort mit dem gleichen Ergebnis zu laufen. und ich muss es von mehr als nur einem Projekt verwenden. –

+0

@SonicSoul: Sie verstehen nicht, wie Knotenpakete funktionieren. 'require ('request')' sieht in './node_modules/request' aus, und das ist es, wo' npm install' das setzt. Sie sollten "npm install" aus dem Stammverzeichnis jeder App ausführen, und Sie sollten niemals selbst den Ordner "node_modules" berühren. – SLaks

+0

bevor Sie 'npm install request' ausführen, sollten Sie' npm init' ausführen. Folgen Sie den Anweisungen, die in Ihrem Projektordner eine 'package.json' erstellen. Führen Sie dann 'npm install -S-Anfrage 'aus, die sowohl das Anfrage-Modul in den Ordner' node_modules 'als auch die Anfrage in Ihre package.json-Datei einfügt – Noah

-1

Ich lief auf das gleiche Problem, hier ist, wie ich es funktionierte ..

offene Klemme:

mkdir testExpress 
cd testExpress 
npm install request 

oder

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

jetzt nicht

Knoten app.js oder Knoten test.js nicht verwenden, werden Sie in dieses Problem so zu tun laufen. Sie können das Problem, das verursacht wird, auch drucken, indem Sie diesen Befehl verwenden. "node -p app.js"

Der obige Befehl, NodeJs zu starten, ist veraltet worden. Statt

npm start 

verwenden Sie diese sehen sollte ..

[email protected] start /Users/{username}/testExpress 
node ./bin/www 

Öffnen Sie Ihren Web-Browser und prüfen, ob localhost: 3000

sollten Sie sehen Express (Willkommen bei Express) installieren

-1

Ich habe das gleiche Problem wie ich es global installieren, dann versuche ich es lokal zu installieren, und es funktioniert.

-1

wenn einige Modul, das Sie nicht finden können, versuchen Sie mit statischem URI, zum Beispiel:

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

Dieses Beispiel laufen auf Ubuntu Gnome 16,04 von 64 Bit, Knoten -v: v4.2.6, npm: 3.5. 2 siehe: Blog of Ben Nadel

3

ich gleiches Problem hatte, für mich npm install request --savedas Problem gelöst. Hoffe es hilft.