89

ここに私の完全なエラーがあります:

Error: Cannot find module 'ejs'
    at Function._resolveFilename (module.js:317:11)
    at Function._load (module.js:262:25)
    at require (module.js:346:19)
    at View.templateEngine (/Users/shamoon/local/node/lib/node_modules/express/lib/view/view.js:133:38)
    at Function.compile (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:65:17)
    at ServerResponse._render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:414:18)
    at ServerResponse.render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:315:17)
    at /Users/shamoon/Sites/soldhere.in/app.js:26:7
    at callbacks (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:272:11)
    at param (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:246:11)

私のソース コードも非常に単純です。

var express = require('express');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.use(express.bodyParser());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.set('view engine', 'ejs');
app.set('view options', {
    layout: false
});

app.get('/', function(req, res) {
  res.render('index', {
    message : 'De groeten'
  });
});

app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

私のフォルダーには、使用した node_modules に ejs がインストールされていますnpm install ejsここに画像の説明を入力だから私の質問は..何が得られますか? 明らかにインストールされているときにノードがEJSを見つけられないように、私は何を間違っていますか?

ありがとう

4

31 に答える 31

162

私は数日前にまったく同じ問題を抱えていましたが、それを理解できませんでした。問題を適切に修正できませんでしたが、これは一時的な修正として機能します。

1 つ上のレベル (app.js の上) に移動し、 を実行しますnpm install ejs。新しい node_modules フォルダーが作成され、Express はモジュールを見つけるはずです。

于 2011-10-13T14:37:17.633 に答える
23

Expressをローカルにインストールする

npm install expressプロジェクトのルートディレクトリにある間)


プロジェクトはとの両方に依存expressejsているため、両方を依存関係としてリストする必要がありますpackage.json

そうnpm installすれば、プロジェクトディレクトリで実行するexpressejs、との両方がインストールvar express = require('express')されるため、グローバルインストールではなく、express(ローカルejsにインストールしたモジュールを認識している)のローカルインストールになります。

一般に、依存関係の一部がすでにグローバルにインストールされている場合でも、すべての依存関係を明示的にリストすることをおpackage.json勧めします。そのため、これらのタイプの問題は発生しません。

于 2013-03-14T06:39:25.170 に答える
10

私の場合、package.jsonに ejs を手動で追加しました:

 {
   "name": "myApp"
   "dependencies": {
     "express": "^4.12.2",
     "ejs": "^1.0.0"
   }
 }

npm installを実行します ( sudoで実行する必要がある場合があります)。ejs はデフォルトでビュー ディレクトリに見えることに注意してください。

于 2015-03-05T18:38:27.103 に答える
9

同じ問題がありました。環境変数 NODE_PATH をモジュールの場所 (私の場合は /usr/local/node-v0.8.4/node_modules ) に設定すると、問題はなくなりました。PS NODE_PATH は、複数のディレクトリを指定する必要がある場合、コロンで区切られたディレクトリのリストを受け入れます。

于 2012-08-20T20:19:01.220 に答える
5

Expressディレクトリレベルでejsコマンドを使用してインストールしたところ、これで問題が解決しました。npm install ejs

エクスプレスガイドhttp://expressjs.com/guide.htmlに記載されている手順を使用してエクスプレスをインストールしました

于 2014-01-17T11:33:31.987 に答える
4

グローバルにインストールするのではなく、ローカルにインストールしてください。その後、プロジェクトはエラーなしで任意のマシンで実行できます。その方が良いと思います。

npm install express --save
npm install ejs --save
于 2017-10-15T16:22:56.250 に答える
3

オプション --save を使用して、express と ejs の両方をインストールしました。

npm install ejs --save npm install express --save

このように、express と ejs は依存関係の package.json ファイルです。

于 2015-12-18T00:38:33.330 に答える
3

この問題がありました。node-inspector を使用してデバッグしたところ、高速ソース ファイルがある node_modules フォルダーから、ejs がインストールされていないことがわかりました。そこで私はそれをそこにインストールしましたが、うまくいきました。

npm install -g ejsNODE_PATH が同じ node_modules フォルダーに設定されているにもかかわらず、期待した場所に配置しませんでした。ノードから始めたばかりで、間違っている可能性があります。

于 2013-03-06T23:23:16.020 に答える
1

プロジェクトディレクトリにエクスプレスをインストールした後、解決する同じ問題があります。以前は、npm install コマンドで -g オプションを使用してグローバル スコープにインストールしていました。

于 2015-06-07T14:47:44.730 に答える
1

ejsでも同じエラーが発生します。実行すると、node install ejs ejsが再度インストールされます。

そして、実行npm installして node_modules を再度インストールします。それは私の仕事です。

于 2019-11-19T17:07:27.400 に答える
0

絶対必要です

const ejs = require('ejs')
app.set('view engine', 'ejs')
于 2021-05-27T03:17:31.170 に答える
0

npm install ejs --save私のために働いた!✅</p>

goormIDE では、次のファイル構成がありました。

  • 容器
    • main.js
    • パッケージロック.json
    • パッケージ.json
    • node_modules
    • ビュー
      • home.ejs

私のmain.jsファイルには、このルートもありました

app.get("/", function(req, res){
res.render("home.ejs");
})

npm install ejs -gpackage.json 内に対応する依存関係を追加しませんでした。 npm install ejs --saveやりました。コンテナ ディレクトリからコマンド ラインを実行しました。手動で package.json に追加することもできました: **

"dependencies": {
    "ejs": "^3.0.2",}

**

于 2020-04-11T09:36:54.697 に答える