グローバルモジュールを使用しようとするとエラーが発生します。例:
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)
エクスプレスコマンドをインストールしました。
npm install -g express
私のapp.js:
var express = require('express');
そして、Windows PowerShellまたはnode.jsコマンドプロンプトウィンドウを使用して実行します。
node app.js
何が間違っているのか本当にわからない、私はWindowsの環境変数について何かを読みます、これはできますか?
問題は、Windows環境変数がnpmフォルダー用に構成されていないことでした。 npmフォルダーを検索し、環境変数にパスを追加します。
Expressをローカルにインストールする必要があります。
npm install express
それからあなたがしたようにそれを必要とします:
var express = require('express')
ここから引用するだけです:
https://www.npmjs.org/doc/files/npm-folders.html
Windows7/x64で同じエラーが発生し、環境変数に以下を追加すると問題が解決しました。
NODE_PATH=C:\Users\[USERNAME]\AppData\Roaming\npm\node_modules
* [USERNAME]を実際のシステムユーザー名に置き換えます
私はLinuxで作業していますが、Expressが必要な場合は、それがインストールされている場所への相対パスを使用してそうしています。
var express = require('./public/node_modules/express');
同じことがWindowsパスでも機能すると確信しています。より明示的にして絶対パスを宣言する場合は、スクリプトの実行元に関係なく、モジュールのロード元を常に正確に把握できるようにするための核となるオプションです。
明示的なパスを使用しても問題が解決しない場合、問題の原因がわかりません。 。 。
別のオプションは、npm install --save expressを実行することです