2013-03-12 6 views
11

Es scheint, dass diese einfache Anwendung das 'connect' Modul nicht finden kann, nachdem ich es gerade im Dateiverzeichnis installiert habe.Fehler: Kann Modul 'connect' nicht finden

var connect = require ('connect'); 

connect.createServer(function(res, req, next) { 
    res.simpleBody("Connect you son of a beeeeetch"); 

}).listen(8000); 



[email protected] 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]) 
Dzs-Mac-Attax-2:PlsWrk Dz$ node test.js 

module.js:340 
    throw err; 
    ^
Error: Cannot find module 'connect' 
    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/Dz/Documents/NodeTests/PlsWrk/test.js:1:77) 
    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) 

Antwort

18

Express verwendet intern Connect als eine der Abhängigkeiten von node_modules.

Wenn Sie Connect in Ihrer App verwenden möchten, müssen Sie es zu Ihrer package.json hinzufügen und npm update ausführen.

Von Entwurf hat jedes Knotenmodul seine eigenen internen Abhängigkeiten.

Wenn Sie eines verwenden möchten, muss Ihre App diese ebenfalls installieren.

Dies bedeutet, dass Ihre App eine andere Version der Module verwenden kann und jedes Modul intern erneut verschiedene Versionen ohne Konflikte verwenden kann.

+0

Aha, ich verstehe. Vielen Dank. – Architek1

+0

Es funktionierte, nachdem ich explcit Abhängigkeit in package.json hinzugefügt und npm Aktualisierung lief, als es tatsächlich Verbindungs-Paket zum lokalen herunterlud. Danke für die Tipps – rahul

+0

Wenn Sie Express verwenden, der auf Connect baut, sollten Sie Express verwenden, um den Server zu starten. Wenn Sie Connect direkt verwenden, wofür verwenden Sie Express? Ein zweiter Server? –

1

weil Sie es nicht installiert haben. Sie haben express installiert, nicht connect.

+0

Ist das Modul [email protected] nicht mit express wie oben aufgeführt installiert oder muss ich es separat installieren? – Architek1

+2

ja. aber Sie können 'require()' nicht, es sei denn, Sie installieren es selbst explizit. es ist 'express's Abhängigkeit, nicht deine eigene. –

8

Verbinden ist ein erweiterbares HTTP-Serverframework, das Express verwendet. Insbesondere verwendet Express es zur Unterstützung von Sitzungen und zur Handhabung von Cookies. Der Quellcode ist unter https://github.com/senchalabs/connect auf github verfügbar.

Im Allgemeinen, wenn eine Knotenanwendung 'etwas nicht finden kann, ist das erste, was zu versuchen ist, zu https://npmjs.org/package/npm-search gehen und suchen, was nicht gefunden werden kann. Es wäre schwierig, im Knoten-Ökosystem ohne npm auszukommen.

In diesem Fall findet npmsearch eine Verbindung und wenn Sie zu https://npmjs.org/package/connect gehen, finden Sie die Installationsanweisungen für das Verbindungsmodul.

In diesem Fall:

npm install connect 

npm -g install connect 

installiert das Verbindungsmodul für jeden Benutzer.

Möglicherweise müssen Sie root sein oder sudo verwenden, um dies auf den meisten Unix-Distributionen zu tun.

Alternativ können Sie die Verbindungs ​​Abhängigkeit Ihres Projekts package.json Datei hinzufügen - Mine sieht wie folgt aus:

"express": "3.x" , 
"connect": "2.x" 

Ich musste auch npm verwenden, um die Module Puffer-crc32 zu installieren, Methoden, debug, frisch , Range-Parser, Cookie-Signatur und Cookie, um ein funktionierendes Express-Projekt zu erhalten.

Glücklich Knoten :)

+0

danke hat für mich gearbeitet –

6

Das Verbindungsmodul entweder Hacking ist nicht installiert oder teilweise so installieren Sie es zuerst installiert und später versuchen, den Server zu starten wieder

npm install connect 
0

ich hatte das gleiche Problem. Knoten in das Verzeichnis C:\Program Files (x86)\nodejs installiert. Anfangs habe ich versucht, JavaScript-Dateien aus diesem Verzeichnis zu installieren und auszuführen, was zu zahlreichen Berechtigungsproblemen führte.

Wenn Sie Ihren Server in diesem Verzeichnis gespeichert haben, versuchen Sie, ihn in ein anderes Verzeichnis zu verschieben (vielleicht in Documents), navigieren Sie dort in der Node-Eingabeaufforderung und versuchen Sie es erneut.

Das funktionierte für mich out-of-the-Box.

0

(Win7) Ich habe ein Befehlsfenster geöffnet als Administrator ich ein Verzeichnis unter C gemacht: \ Program Files (x86) \ NodeJS ich das Befehlsfenster über cd C navigiert: \ Program Files (x86) \ NodeJS

ich lief Befehle npm verbinden installieren

Antwort: [geschwärzt]> npm -g npm ERR verbinden installieren! Windows_NT 6.1.7601 npm ERR! argv "[redigiert] \ node_modules \ npm \ bin \ npm-cli.js" -g "" install "" connect " npm ERR! Knoten v0.12.7 npm ERR! npm v2.11.3 npm ERR! Code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! syscall verbinden

npm ERR! network connect ETIMEDOUT 
npm ERR! network This is most likely not a problem with npm itself 
npm ERR! network and is related to network connectivity. 
npm ERR! network In most cases you are behind a proxy or have bad network settings. 
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the 
npm ERR! network 'proxy' config is set properly. See: 'npm help config' 

npm ERR! Please include the following file with any support request: 
npm ERR!  [redacted]\npm-debug.log 

Ich lief npm Config bearbeiten ich die Attribut Zeilen änderte das Semikolon am Anfang jeder dieser Zeilen zu beseitigen.

Wieder lief ich npm -g

gleiche Ergebnis verbinden installieren. Die Protokolldatei enthält:

0 info it worked if it ends with ok 
1 verbose cli [ ' [redacted]\\\\node.exe', 
1 verbose cli ' [redacted]\\node_modules\\npm\\bin\\npm-cli.js', 
1 verbose cli '-g', 
1 verbose cli 'install', 
1 verbose cli 'connect' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose install initial load of [redacted]\package.json 
5 verbose readDependencies loading dependencies from [redacted]\package.json 
6 silly cache add args [ 'connect', null ] 
7 verbose cache add spec connect 
8 silly cache add parsed spec { raw: 'connect', 
8 silly cache add scope: null, 
8 silly cache add name: 'connect', 
8 silly cache add rawSpec: '', 
8 silly cache add spec: '*', 
8 silly cache add type: 'range' } 
9 silly addNamed [email protected]* 
10 verbose addNamed "*" is a valid semver range for connect 
11 silly addNameRange { name: 'connect', range: '*', hasData: false } 
12 silly mapToRegistry name connect 
13 silly mapToRegistry using default registry 
14 silly mapToRegistry registry ht tps://registry.npmjs.org/ 
15 silly mapToRegistry uri ht tps://registry.npmjs.org/connect 
16 verbose addNameRange registry:ht tps://registry.npmjs.org/connect not in flight; fetching 
17 verbose request uri https://registry.npmjs.org/connect 
18 verbose request no auth needed 
19 info attempt registry request try #1 at 12:36:52 PM 
20 verbose request id 3524fc7ca91c73dc 
21 http request GET https://registry.npmjs.org/connect 
22 info retry will retry, error on last attempt: Error: connect ETIMEDOUT 
23 info attempt registry request try #2 at 12:37:26 PM 
24 http request GET https://registry.npmjs.org/connect 
25 info retry will retry, error on last attempt: Error: connect ETIMEDOUT 
26 info attempt registry request try #3 at 12:38:50 PM 
27 http request GET https://registry.npmjs.org/connect 
28 verbose stack Error: connect ETIMEDOUT 
28 verbose stack  at exports._errnoException (util.js:746:11) 
28 verbose stack  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19) 
29 verbose cwd [redacted] 
30 error Windows_NT 6.1.7601 
31 error argv "[redacted]\\node_modules\\npm\\bin\\npm-cli.js" "-g"  "install" "connect" 
32 error node v0.12.7 
33 error npm v2.11.3 
34 error code ETIMEDOUT 
35 error errno ETIMEDOUT 
36 error syscall connect 
37 error network connect ETIMEDOUT 
37 error network This is most likely not a problem with npm itself 
37 error network and is related to network connectivity. 
37 error network In most cases you are behind a proxy or have bad network settings. 
37 error network 
37 error network If you are behind a proxy, please make sure that the 
37 error network 'proxy' config is set properly. See: 'npm help config' 
38 verbose exit [ 1, true ] 

Ich denke, ich werde nur IIS Express verwenden. Diese Hunderte von Dateien, etwas zu tun einfach ist einfach über mich.

0

Ich hatte das gleiche Problem für Express-http-Proxy und die Lösung war, das Paket mit Npm zu installieren. Zuerst habe ich global installiert (-g) und es funktioniert. Auf einer anderen Installation musste ich "--save-dev" verwenden.

$ gulp 
module.js:338 
    throw err; 
    ^
Error: Cannot find module 'express-http-proxy' 
at Function.Module._resolveFilename (module.js:336:15) 
at Function.Module._load (module.js:278:25) 
at Module.require (module.js:365:17) 
at require (module.js:384:17) 
at Object.<anonymous> (/var/opt/jet/workspace/node-js-project/lib/authorization-to-context-header.js:1:75) 
at Module._compile (module.js:460:26) 
at Object.Module._extensions..js (module.js:478:10) 
at Module.load (module.js:355:32) 
at Function.Module._load (module.js:310:12) 
at Module.require (module.js:365:17) 
at require (module.js:384:17) 

das Paket

$ npm install express-http-proxy -g 
[email protected] /opt/jet/nodejs/node-js/lib/node_modules/express-http-proxy 
âââ [email protected] ([email protected], [email protected]) 
âââ [email protected] ([email protected], [email protected]) 

Installation oder wenn die "-g" ist nicht genug

$ npm install express-http-proxy --save-dev 

schluck arbeitet

$ gulp 
[16:49:17] Using gulpfile /var/opt/workspace/node-js-project/gulpfile.js 
[16:49:17] Starting 'dev'... 
[16:49:17] Starting 'clean'... 
[16:49:17] Finished 'dev' after 9.18 ms 
[16:49:17] Starting 'default'... 
[16:49:17] Finished 'default' after 10 μs 
[16:49:17] Finished 'clean' after 11 ms 
[16:49:17] Starting 'build'... 
[16:49:17] Starting 'clean'... 
[16:49:17] Finished 'clean' after 2.13 ms 
[16:49:17] Starting 'styles'... 
[16:49:17] Finished 'styles' after 813 ms 
...