web-dev-qa-db-ja.com

エラー:モジュール 'ejs'が見つかりません

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

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);

私のフォルダーでは、npm install ejsを使用して取得したnode_modulesにejsがインストールされています。 enter image description here 私の質問は..何が得られますか?明確にインストールしたときにノードがEJSを見つけられないように、私は何を間違っていますか?

ありがとう

72
Shamoon

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

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

122
evilcelery

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

(_npm install express_プロジェクトのルートディレクトリにいる間)


プロジェクトはexpressejsの両方に依存するため、それらを両方とも依存関係として_package.json_にリストする必要があります。

プロジェクトディレクトリで_npm install_を実行すると、expressejsの両方がインストールされ、var express = require('express')localグローバルのインストールではなく、エクスプレス(ローカルにインストールしたejsモジュールを認識)のインストール。

一般に、それらの一部が既にグローバルにインストールされている場合でも、_package.json_内のすべての依存関係を明示的にリストすることをお勧めします。

19
Will

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

8
Pete

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

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

そして走る npmインストール (あなたはそれを実行する必要があるかもしれません 須藤)ejsはデフォルトでビューディレクトリに見えることに注意してください

6
levon

グローバルにインストールするのではなく、ローカルにインストールします。その後、プロジェクトはエラーなしでどのマシンでも実行できます。

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

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

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

4
Ramesh Kotkar

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

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

このように、エクスプレスとejは依存package.jsonファイルです。

3
colo

Npm、express、ejsを再インストールすると問題が解決しました

これは私のために働いた、

  1. 端末またはcmd->アプリディレクトリに移動し、
  2. cd pathtoyourapp/AppName
  3. 「npm install」を再実行します
  4. 「npm install express」を再実行します
  5. 「npm install ejs」を再実行します

その後、エラーは修正されました。

3
apelidoko

この問題がありました。 node-inspectorを使用してデバッグしたところ、エクスプレスソースファイルがあるnode_modulesフォルダーから、ejsがインストールされていないことがわかりました。そこで、そこにインストールして動作しました。

npm install -g ejsは、同じnode_modulesフォルダーにNODE_PATHが設定されているにも関わらず、予想した場所に配置しませんでした。間違ってやっている問題、ただノードから始めた。

2
Typo Johnson

package.jsonに依存関係を追加し、npm installを実行します

    {
  ...
  ... 
  "dependencies": {
    "express": "*",
    "ejs": "*",
  }
}
2
marwari

Express V x.x.xをインストールしたら、テンプレートビューエンジンを選択する必要があります。本当に簡単に学ぶことができます。私の個人的な目標は [〜#〜] ejs [〜#〜] です。

他の本当に良いと学ぶのは簡単かもしれません:

EJSをインストールするには(そしてエラーを修正します)プロジェクトのルートで実行します:

_npm install ejs
_

または、Yarnを使用している場合:

_yarn add ejs
_

次に、モジュールが必要になるため、Expressが必要な場所でファイルを開きます(通常はapp.jsまたはserver.js)

以下に追加var express = require('express');

_var ejs = require('ejs');
_
2
Timm Jensen

Ejsテンプレートエンジンがマシンに正しくインストールされていないと思います。 npmを使用してテンプレートエンジンをインストールするだけです

npm install ejs --save

その後、app.jsに次のコードを含めます

app.set('view engine', 'ejs')
2
Codemaker

ステップ1

見る npm ls | grep ejsプロジェクトのルートレベルで、ejsdependencyをプロジェクトに既に追加しているかどうかを確認します。

そうでない場合は、dependenciesとしてプロジェクトに追加します。 (私はpackage.json の代わりに npm installingモジュール。)

例えば。

{                                                                                                      
  "name": "musicpedia",                                                                                
  "version": "0.0.0",                                                                                  
  "private": true,                                                                                     
  "scripts": {                                                                                         
    "start": "node ./bin/www"                                                                          
  },                                                                                                   
  "dependencies": {                                                                                    
    "body-parser": "~1.15.1",                                                                          
    "cookie-parser": "~1.4.3",                                                                         
    "debug": "~2.2.0",                                                                                 
    "express": "~4.13.4",                                                                              
    "jade": "~1.11.0",                                                                                 
    "ejs": "^1.0.0",                                                                                                                                                            
    "morgan": "~1.7.0",                                                                                
    "serve-favicon": "~2.3.0"                                                                          
  }                                                                                                    
}   

STEP 2依存関係のダウンロード

npm install

STEP 3 check ejs module

$ npm ls | grep ejs
[email protected] /Users/prayagupd/nodejs-fkers/musicpedia
├── [email protected]
2
prayagupd

私の場合、それは愚かな間違いでした。ミドルウェアのタイプミスでした。 app.set('view engine', 'ejs.');と書いたのは、ドットがエラーを引き起こしたためです。 ejsをインストールし、ローカルで表現しました

1

私と同じ問題が発生したときの方法。

JSONファイルのejsに依存関係があり、ローカルおよびグローバルにインストールしようとしましたが、機能しませんでした。

その後、私は手動でモジュールを追加しました:

app.set('view engine','ejs'); 

app.engine('ejs', require('ejs').__express);

その後、動作します。

1
Kael

package.jsonファイルの依存関係が最新であることをご確認ください。 NPMが最新バージョンであることも確認した後、一度に1つずつ再インストールしてみてください。それは私のために働いた。パッケージに対してnpm installを実行することをお勧めします(依存関係を手動で追加したために動作を拒否した後、私のケースで動作したことです)。

1
douglas egiemeh

私の場合、愚かな構文エラーはありませんでしたが、同じエラーが発生しました。 ejsとejs-mateをグローバルにインストールしました。ローカルにインストールしましたが、エラーは解決しました。

1

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

1
Mohit
app.set('view engine', 'ejs')

そして、ターミナルで

npm install ejs --save 

問題を解決します

0
Homam Bahrani