node.js:モジュール「リクエスト」が見つかりません


92

私はリクエストモジュールをインストールし、エラーが発生しました:

module.js:340
    throw err;
          ^
Error: Cannot find module 'request'

私はこのエラーに関するすべての投稿を読みましたが、これはモジュール要求がグローバルに見つからないためであることを理解していますが、すでに2つの提案を試しました

npmインストール要求-g

これは/ usr / loca / binにインストールする必要がありますか?見ないから。

そして

sudo npmリンク

/ usr / local / lib / node_modules / request-> / Users / soulsonic / dev / sandbox / node_test / request

各コマンドの後に端末を再起動しましたが、「モジュールが見つかりません」エラーが発生し続けます。

更新

「npm install request」がnode_modulesの下に「request」を追加していなかったため、最初のディレクトリになんらかの競合があったに違いありません(そこに他に10個あります)..新しいディレクトリに切り替えた後、機能しました。

-gスイッチを指定して実行すると、/ usr / local / lib / node_modules / requestにインストールされていることがわかります。

上記のパスが自動的に追加されるように、プロファイルを更新する必要があるようです。

回答:


171

プロジェクトのディレクトリに移動します

mkdir TestProject
cd TestProject

このディレクトリをプロジェクトのルートにします(これによりデフォルトpackage.jsonファイルが作成されます)

npm init --yes

必要なnpmモジュールをインストールし、プロジェクトの依存関係として保存します(これはに表示されますpackage.json

npm install request --save

test.jsパッケージの例のコードを使用してプロジェクトディレクトリにファイルを作成する

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body); // Print the google web page.
  }
});

プロジェクトディレクトリは次のようになります。

TestProject/
- node_modules/
- package.json
- test.js

次に、プロジェクトディレクトリ内でノードを実行します。

node test.js

1
ええ、それはまさに私が従った例です。そして今、npmインストーラーを10回実行しています。テストプロジェクトで-gフラグを使用しています。それは私にそのエラーを与え続けて.. ..私は私のテストディレクトリにnode_modulesを見ることができますが、要求があっていない
ソニックソウル

変な葛藤があったとしても、これらは従うべき正しいステップだからです。新しいディレクトリでもう一度実行するとうまくいきました。私には何が起こったのかについての更新を追加しました。おそらく他の人には珍しいでしょう
Sonic Soul

32

プロジェクト内request でローカルにインストールするだけです。

ただ、cdあなたのjsファイルと実行を含むフォルダへ

npm install request

「npm install request」の後、私はapp.jsをrequestフォルダーにコピーし、そこから実行してみましたが、同じ結果が得られました。そして、複数のプロジェクトからそれを使用する必要があります。
ソニックソウル

@SonicSoul:ノードパッケージの動作を誤解しています。 require('request')を調べて./node_modules/request、そこにnpm install配置します。npm install各アプリのルートディレクトリから実行する必要がありnode_modulesます。また、自分でフォルダに触れないでください。
SLaks 2013年

実行する前に、実行npm install requestする必要がありますnpm initpackage.jsonプロジェクトフォルダにを作成するプロンプトに従います。次にnpm install -S request、要求モジュールをnode_modulesフォルダーにインストールし、package.jsonファイルに要求を追加する実行
Noah

@SLaksは、ルートフォルダーに入力して実行する必要があるパッケージをインストールするたびに実行されるという意味ではありnpm installませんか?それらすべてのために?
Drumnbass

@Drumnbass:いいえ npm install。すべての依存関係もインストールされます。
16

16

私は同じ問題を抱えていました、私npm install request --save は問題を解決しました。 それが役に立てば幸い。


1

私は同じ問題に遭遇していました、これが私がそれを機能させた方法です。

オープンターミナル:

mkdir testExpress
cd testExpress
npm install request

または

sudo npm install -g request // If you would like to globally install.

今は使わない

node app.jsまたはnode test.jsを実行すると、この問題が発生します。このコマンドを使用して、原因となっている問題を出力することもできます。"node -p app.js"

nodeJsを起動する上記のコマンドは非推奨になりました。代わりに

npm start

これが見えるはずです。

testExpress@0.0.0 start /Users/{username}/testExpress
node ./bin/www

Webブラウザーを開き、localhost:3000を確認します。

エクスプレスインストールが表示されます(エクスプレスへようこそ)


1

グローバルにインストールしたのと同じ問題に遭遇しましたが、ローカルにインストールしようとしましたが、うまくいきました。


1

見つからないモジュールがある場合は、静的URIで試してください。次に例を示します。

var Mustache = require("/media/fabio/Datos/Express/2_required_a_module/node_modules/mustache/mustache.js");

この例は、64ビットのUbuntu Gnome 16.04、ノード-v:v4.2.6、npm:3.5.2で実行します。参照先:Ben Nadelのブログ


0

ReferenceError:変数が見つかりません:必要です。

「npm」を​​インストールしたので、通常どおり「localhost」「127.0.0.1」に対してスクリプトを実行できます。

「npm」の「オプション」でhttp.clientRequest()を使用する場合は、モジュール内に「RequireJS」をインストールする必要があります。

モジュールは、ノードによってロードできるnode_modulesディレクトリ内の任意のファイルまたはディレクトリです。「RequiereJS」をインストールして、http.clientRequest(options)を動作させます。


0

モジュールをバージョンとともにローカルにインストールしてみましたが、うまくいきました!!

npm install request@^2.*

ありがとう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.