159

最初の node.js アプリを作成しましたが、高速ライブラリが見つかりません:

C:\ChatServer\Server>node server.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:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\ChatServer\Server\server.js:6:9)
    at Object.<anonymous> (C:\ChatServer\Server\server.js:25:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

ただし、エクスプレスは(-gキー付きで)インストールされています:

C:\ChatServer\Server>npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/connect/2.7.11
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/connect/2.7.11
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http 304 https://registry.npmjs.org/send/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm WARN package.json bytes@0.2.0 No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json pause@0.0.1 No repository field.
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/send/0.1.1
npm http 304 https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
C:\Users\Dmitry\AppData\Roaming\npm\express -> C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express\bin\express
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
express@3.2.6 C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, formidable@1.0.14, send@0.1.1)

いくつかの情報:

C:\ChatServer\Server>npm --version
1.2.24

C:\ChatServer\Server>node --version
v0.10.9

C:\ChatServer\Server>npm --version
1.2.24

C:\ChatServer\Server>npm ls -g installed express
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
C:\Users\Dmitry\AppData\Roaming\npm
└── express@3.2.6


C:\ChatServer\Server>npm ls installed express
C:\ChatServer\Server
└── (empty)

どうすればこの問題を解決できますか? (なしでインストールする必要があります-gか?)

4

16 に答える 16

307

node_modulesExpress をアプリケーションのコンテキスト (フォルダー)にローカルにインストールする必要があります。

$ npm install express

これは、アプリケーションが常にローカル コンテキストで依存関係を探すためです。グローバルインストールは、単体テストランナーやブートストラッパーなど、システム全体で利用可能なバイナリをセットアップするためだけのものです。

Express をグローバルにインストールするとexpress、アプリケーションをブートストラップできるバイナリが取得されます。詳細については、次のように入力してください。

$ express --help

したがって、最後の質問に答えるには、はい、インストールせずにインストールする必要があります-g

于 2013-06-18T06:56:23.467 に答える
13

expressモジュールをインストールしていないかどうかを確認するには、次のコマンドを使用します。

 npm install express

node_modulesディレクトリが別の場所にある場合は、NODE_PATH環境変数を設定します。

 set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
于 2013-11-22T10:25:17.527 に答える
4

あなたの場合、expressモジュールは にインストールされてC:\Users\Dmitry\AppData\Roaming\npm\node_modules\expressいますが、このモジュールをプロジェクト ディレクトリに入れる必要があります。したがって、expressモジュール フォルダーのファイルを次のC:\Users\Dmitry\AppData\Roaming\npm\node_modules\ようにプロジェクト ディレクトリにコピーする必要がありますC:\ChatServer\Server\node_modules。プロジェクト フォルダーに「node_modules」という名前のフォルダーがない場合は、最初にフォルダーを作成し、それらのファイルをこのフォルダーに貼り付けます。この方法は、私のWindows PCでうまくいきました。ノード サーバーを再起動し、コマンド node をもう一度実行しますC:\ChatServer\Server>node server.js。今すぐ動作するはずです!!!!

于 2014-05-09T06:17:34.657 に答える
3

UbuntuベースのOSで試すことができます

sudo apt-get install node-express

Mintで私のために働いています

于 2015-09-02T16:57:48.227 に答える
1

アプリケーション ディレクトリに移動し、以下のコマンド npm install express --saveを使用して Express モジュールをインストールします。次に、以下のコマンドnpm lsを 使用してすべてのインストール モジュールをリストし ます。ローカルにインストールされているすべてのモジュールが表示されます。

于 2017-01-07T19:56:19.347 に答える
1

この本の例「Kubernetes Up & Running」に従って同じエラーが発生しました。Expressを「手動で」
インストールすることを提案する多くの回答を目にしますが、それが最善の解決策であるとは確信していません。package.json を使用しており (ログで確認できます)、アプリをビルドする正しい方法は runningであるため、 package.jsonファイルに明示的な依存関係を追加しました。
npm install

 "dependencies": {
    "express": "^4.17.1"
}

で現在のバージョンを取得しnpm search expressます。

于 2020-07-12T14:02:08.200 に答える
0
  • sudo brew アンインストール ノード
  • 醸造更新
  • 醸造のアップグレード
  • 醸造のクリーンアップ
  • 醸造インストールノード
  • sudo chown -R $(whoami) /usr/local
  • brew link --overwrite ノード
  • sudo brew postinstall ノード

これはMacOS X Sierraでうまくいきました

于 2016-11-26T19:29:06.633 に答える
0

私は同じ問題にぶつかりました。/usr/local/bin/ にグローバルに高速インストールしました。「npm install」を実行すると、ローカル ディレクトリの node_modules に Express が作成されませんでした。

  1. $HOME にファイル名 .npmrc があるかどうかを確認します
  2. 「global = true」の場合、「global = false」に変更
  3. 次に、アプリケーション ディレクトリで「npm install」を実行します。多くの場合、アプリケーション ディレクトリ内の node_modules (ローカル) にインストールされているすべてのパッケージ依存モジュールを取得する必要があります。
于 2016-11-03T23:55:50.127 に答える
0

1. 最初に Express が正しい場所にインストールされているかどうかを確認します。2. npm install express (このコマンドを実行します)。3. Express は「node_modules」フォルダーの下に保存します

于 2021-01-29T01:37:14.483 に答える