21

グローバルモジュールを使用しようとするとエラーが発生します。例:

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

私のapp.js:

var express = require('express');

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

node app.js

何が問題なのかよくわかりません。Windows の環境変数について何か読んだことがありますが、これでよいでしょうか?

解決済み / 更新

問題は、npm フォルダーに Windows 環境変数が構成されていないことでした。npm フォルダーを検索し、環境変数にパスを追加します。

4

5 に答える 5

15

ここから引用するだけです:

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

  • require() する場合は、ローカルにインストールしてください。
  • コマンドラインで実行する場合は、グローバルにインストールしてください。
  • 両方が必要な場合は、両方の場所にインストールするか、npm linkを使用してください。
于 2014-10-17T07:47:48.757 に答える
13

Windows7/x64 でも同じエラーが発生し、環境変数に以下を追加すると問題が解決しました。

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

* [USERNAME] を実際のシステム ユーザー名に置き換えます

于 2014-10-21T06:31:02.007 に答える
13

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

npm install express

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

var express = require('express')
于 2014-04-17T17:38:50.153 に答える
4

私はLinuxで作業していますが、エクスプレスが必要な場合は、インストールされている場所への相対パスを使用しており、正常に動作します:

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

同じことがWindowsパスでも機能すると確信しています。より明示的に絶対パスを宣言したい場合は、スクリプトがどこから実行されているかに関係なく、モジュールがどこからロードされているかを常に正確に把握するための核となるオプションになります。

明示的なパスを使用しても問題が解決しない場合は、何が問題なのかわかりません。. .

于 2014-01-10T19:09:55.053 に答える
0

別のオプションは、 npm install --save express を実行することです

于 2016-05-17T15:25:17.270 に答える