0

npm Express を使用して小さなプログラムを作成しました。プログラムを実行しているときに、以下のようなエラーが発生します(node.jsは初めてです)

module.js:340
    throw err;
          ^
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:\Users\node\node_modules\app.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

1 に答える 1

3

アプリ内では明らかrequireexpressモジュールで、おそらく次のようになります。

var express = require('express');

この行が機能するには、アプリケーションのローカル コンテキストに Express をインストールする必要があります。そのために実行します

$ npm install express

アプリケーションのフォルダー内。これにより、(まだ存在しない場合)node_modulesすべての依存関係が格納されるフォルダーが作成されます。

さらに、次のように Express をブロックpackage.json内に配置することをお勧めします。dependencies

"dependencies": {
  "express": "3.1.0"
}

もちろん、バージョン番号は、使用するバージョンに合わせて調整できます。すべての依存関係に対してこれを実行したら、実行するだけで一度にインストールできます

$ npm install

それはそれを修正する必要があります。

PS: このシナリオでは、Express をグローバルにインストールしたかどうかは問題ではありません。expressグローバル インストールは、ブートストラップをシステム全体で使用できるようにする場合にのみ適しています。関数は、require常にローカル アプリケーション コンテキスト内でのみ検索します。

于 2013-03-07T08:35:52.677 に答える