web-dev-qa-db-ja.com

Node.jsエラー:module expressが見つかりません

私は最初の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)

しかしexpressは(-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 [email protected] 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 [email protected] No repository field.
npm WARN package.json [email protected] No readme data.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 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 [email protected] No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json [email protected] 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 [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
[email protected] C:\Users\Dmitry\AppData\Roaming\npm\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], [email protected], [email protected])

いくつかの情報:

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 [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
C:\Users\Dmitry\AppData\Roaming\npm
└── [email protected]


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

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

117
Dmitry

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

$ npm install express

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

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

$ express --help

それで、あなたの最後の質問に答えるために、YES、あなたは-gなしでそれをインストールする必要があります。

241
Golo Roden

私のためにそれは次のように--saveオプションを使用してローカルにエクスプレスをインストールしたときにうまくいきました:

$ npm install express --save
17
Mustafamg

expressモジュールをインストールしていないか確認して、以下のコマンドを使用してください。

 npm install express

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

 set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
10
Reza Ebrahimi

Goloは解決策をよく説明しています、しかし私は明確化を加えるかもしれません:
ノードモジュールがインストールされていることがあります

/usr/local/lib/node_modules

そして、あなたが起動すると、blabla.jsモジュールが検索されます。

/lib

そのため、解決策はシンボリックリンクを作成することです。

Sudo ln -s /usr/local/lib/node_modules/ /lib/node_modules
5
Luca Davanzo

あなたの場合あなたの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を実行します。それは今動作するはずです!!!!

4
Rahul Gupta

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

Sudo apt-get install node-express

それはミントで私のために働いて

2

システムにノードがインストールされている場合、Windows用に次のように使用して、プロジェクト用にExpressをローカルにインストールします。

npm install express

または

npm install express --save

あなたはそれを使用してグローバルアクセスを与えることができます:

npm install -g express --save
2
kg11

モジュールがインストールされているが、私はvscodeでこのエラーを抱えていた。 TypeScriptとexpressを使っています。 server.tsファイルでは、すべてのインポートに赤い下線が引かれていました。それは私が不完全なtsconfig.jsonファイルを持っていたことが判明しました。

{
    "compileOnSave": false,
    "compilerOptions": {
        "module": "commonjs", // Previously this value was `es6`
        "target": "es6",
        "allowSyntheticDefaultImports": true,
        "baseUrl": "public",
        "sourceMap": true,
        "outDir": "dist",
        "jsx": "react",
        "strict": true,
        "preserveConstEnums": true,
        "removeComments": true,
        "noImplicitAny": true,
        "allowJs": true
    },
    "exclude": [
        "node_modules",
        "build"
    ]
}
2
Adrian Moisa

あなたのアプリケーションディレクトリに行き、下記のコマンドを使用してexpressモジュールをインストールしてくださいnpm install express --saveそして下記のコマンドを使用してall installモジュールをリストしてくださいnpm lsあなたは全部見るでしょうローカルインストールモジュール.

1

ハードディスクにsample1というフォルダを1つ作成し、コマンドプロンプトのタイプに移動します。

npm install express

npmインストール翡翠

npm install socket.io

そして、あなたがアプリケーションを作成しているものは何でもsample1フォルダに保存します

それを試してみてください...

1
Dev

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

  1. $ HOMEにファイル名.npmrcがあるか確認してください。
  2. 「global = true」の場合は、「global = false」に変更します。
  3. 今すぐアプリケーションディレクトリに 'npm install'を実行してください。おそらく、アプリケーションディレクトリ内のnode_modules(local)にすべてのパッケージ依存モジュールをインストールする必要があります。
0
user2512153
  • Sudo brewアンインストールノード
  • ブリューアップデート
  • ブリューアップグレード
  • クリーンアップ
  • bREWインストールノード
  • Sudo chown -R $(whoami)/ usr/local
  • brew link - 上書きノード
  • Sudo brew postinstallノード

これは私にとって役に立ちましたMacOS X Sierra

0
Durul Dalkanat