質問

グローバルモジュールを使用しようとしているときにエラーが発生しました。 exemple:

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:\BitNami\wappstack\...\test\app.js)
    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)
.

Expressコマンドをインストールしました:

npm install -g express
.

My App.js:

var express = require('express');
.

とWindows PowerShellまたはNode.jsコマンドプロンプトウィンドウを使用して実行する:

node app.js
.

何がうまくいかないのか本当にわからない、私はWindowsの環境変数について何かを読み、これは?

解決/更新

問題は次のとおりです.Windows環境変数はNPMフォルダ用に設定されていませんでした。 NPMフォルダを検索して、環境変数にパスを追加します。

役に立ちましたか?

解決

Express Locallyをインストールする必要があります。

npm install express
.

あなたがしたようにそれを必要とします:

var express = require('express')
.

他のヒント

ここから引用するために:

https://www.npmjs.org/doc/files/npm-folders.html

  • locally をインストールします()require()にする場合は
  • コマンドラインで実行する場合は、グローバルにインストールします。
  • 両方が必要な場合は、両方の場所にインストールするか、 npmリンクを使用してください。

Windows 7 / x64でも同じエラーになっていて、環境変数に次の追加を追加していました:

NODE_PATH=C:\Users\[USERNAME]\AppData\Roaming\npm\node_modules
.

* [UserName]を実際のシステムユーザー名

に置き換えます。

Linuxで働いていますが、表現が必要な場合は、インストールされている場所への相対パスでそうしています。

var express = require('./public/node_modules/express');
.

私は同じことがWindowsのパスでも機能することが同じです。もっと明確にして絶対パスを宣言したい場合は、あなたがあなたのスクリプトがどこから実行されている場所に関係なくあなたのモジュールがあなたのモジュールがどこからロードされている場所を正確に知っていることを確認するための核オプションでしょう。

明示的なパスを使用した後に問題がある場合は、問題があるかもしれないものがわかりません。。。

他のオプションはNPM Installを実行することです - Save Express

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top