12

この単純なアプリは'connect'、ファイル ディレクトリにインストールしただけではモジュールを見つけられないようです。

var connect = require ('connect');

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

}).listen(8000);



express@3.1.0 node_modules/express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@0.0.1
├── buffer-crc32@0.1.1
├── cookie@0.0.5
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.3
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.2 (pause@0.0.1, bytes@0.1.0, formidable@1.0.11, qs@0.5.1)
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)
4

8 に答える 8

20

Expressは内部的にConnectを node_modules 依存関係の 1 つとして使用します。

アプリで Connect を使用する場合は、Connect をに追加してpackage.json実行する必要がありますnpm update

設計上、各ノード モジュールには独自のプライベートな内部依存関係があります。

いずれかを使用する場合は、アプリにそれらもインストールする必要があります。

これは、アプリが異なるバージョンのモジュールを使用できることを意味し、各モジュールは競合することなく内部で異なるバージョンを再び使用できます。

于 2013-03-12T02:09:19.833 に答える
8

Connectは、Express が使用する拡張可能な HTTP サーバー フレームワークです。特に Express では、セッションと Cookie 処理のサポートが提供されます。ソース コードは、https://github.com/senchalabs/connectの github で入手できます。

通常、ノード アプリケーションで何かが「見つからない」場合、最初に試行することは、https://npmjs.org/package/npm-searchに移動して、見つからないものを検索することです。npm を使わずにノード エコシステムでうまくやっていくのは難しいでしょう。

この場合、npmsearch は接続を検出し、https: //npmjs.org/package/connect にアクセスすると、接続モジュールのインストール手順が見つかります。

この場合 :

npm install connect

npm -g install connect 

すべてのユーザーに接続モジュールをインストールします。

ほとんどの UNIX ディストリビューションでこれを行うには、root になるか、sudo を使用する必要がある場合があります。

または、接続依存関係をプロジェクトの package.json ファイルに追加することもできます - 私の場合は次のようになります:

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

また、npm を使用してモジュール buffer-crc32、methods、debug、fresh、range-parser、cookie-signature、および cookie をインストールし、高速プロジェクトを機能させる必要がありました。

ハッピーノードハッキング:)

于 2013-08-06T15:16:19.920 に答える
6

接続モジュールがインストールされていないか、部分的にインストールされているため、最初にインストールしてから、サーバーを再起動してください。

  npm install connect
于 2014-01-28T20:06:43.710 に答える
1

インストールしていないためです。ではexpressなく、インストールしましたconnect

于 2013-03-12T02:04:18.433 に答える
0

私も同じ問題を抱えていました。ディレクトリにインストールされたノードC:\Program Files (x86)\nodejs。最初に、このディレクトリから javascript ファイルをインストールして実行しようとしたため、多くの権限の問題が発生しました。

サーバーをそのディレクトリに配置した場合は、別のディレクトリ (おそらくDocuments) に移動して、Node コマンド プロンプトでそこに移動し、もう一度実行してみてください。

それは私にとってすぐに使えるものでした。

于 2015-05-08T15:11:31.640 に答える