私はNode.jsの初心者で、最初のウェブアプリケーションを構築するためにexpressを学ぼうとしています。最初のサンプルコードで行き詰ってしまい、実行するために助けが必要です。 この質問を投稿する前に、スタックオーバーフローで検索したところ、似たような質問がいくつか見つかりましたが、それでも解決できませんでした。
Error:Cannot find module 'express'
私はmac os 10.8.2を使用しています。 Node.jsをnvm
でインストールしています。
node.js: 0.8.20 path to node: /Users/feelexit/nvm/v0.8.20/bin/node
expressへのパスです。/Users/feelexit/nvm/node_modules/express
サンプルコード: このファイルは以下の場所にあります。
/Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsにあります。
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('welcome to express');
});
app.listen(3000);
このコマンドを実行しようとすると、node index.js
と表示されます。
以下のエラーメッセージが表示されます。
ありがとうございました。
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> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
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)
feelexits-Mac:node_modules feelexit$
chovyԅの質問に答えるために更新しました:。
feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/feelexit/npm-debug.log
npm ERR! not ok code 0
expressモジュールをプロジェクトとは別のディレクトリに配置しています。ローカルでrequire()しようとしているので、それが問題になっていると思われます。Expressモジュールを/Users/feelexit/nvm/node_modules/expressから/Users/feelexit/WebstormProjects/learnnode/node_modules/expressに移動してみてください。この情報では、node_moduleのファイル構造について、より詳しく知ることができます。
メインファイルが /Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
にある場合、express は /Users/feelexit/WebstormProjects/learnnode/node_modules
にある必要があります。
node は常に ./node_modules
(およびその内部フォルダ)にあるモジュールを探すため、/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules
にある必要があります。
パスが ./
または /
で始まらない場合 (詳細はこちら)
モジュールフォルダにメインファイルを配置していないのではないでしょうか?