ここに私の完全なエラーがあります:
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がインストールされています。 私の質問は..何が得られますか?明確にインストールしたときにノードがEJSを見つけられないように、私は何を間違っていますか?
ありがとう
私は数日前にこのまったく同じ問題を抱えていて、それを理解できませんでした。問題を適切に修正できませんでしたが、これは一時的な修正として機能します。
1レベル上に(app.jsより上に)行ってnpm install ejs
。新しいnode_modulesフォルダーが作成され、Expressはそのモジュールを見つけるはずです。
(_npm install express
_プロジェクトのルートディレクトリにいる間)
プロジェクトはexpress
とejs
の両方に依存するため、それらを両方とも依存関係として_package.json
_にリストする必要があります。
プロジェクトディレクトリで_npm install
_を実行すると、express
とejs
の両方がインストールされ、var express = require('express')
がlocalグローバルのインストールではなく、エクスプレス(ローカルにインストールしたejs
モジュールを認識)のインストール。
一般に、それらの一部が既にグローバルにインストールされている場合でも、_package.json
_内のすべての依存関係を明示的にリストすることをお勧めします。
同じ問題がありました。環境変数NODE_PATHをモジュールの場所(この場合は/usr/local/node-v0.8.4/node_modules)に設定すると、問題はなくなりました。追伸NODE_PATHは、複数のディレクトリを指定する必要がある場合、コロンで区切られたディレクトリのリストを受け入れます。
私の場合、ejsを手動で追加しました package.json:
{
"name": "myApp"
"dependencies": {
"express": "^4.12.2",
"ejs": "^1.0.0"
}
}
そして走る npmインストール (あなたはそれを実行する必要があるかもしれません 須藤)ejsはデフォルトでビューディレクトリに見えることに注意してください
グローバルにインストールするのではなく、ローカルにインストールします。その後、プロジェクトはエラーなしでどのマシンでも実行できます。
npm install express --save
npm install ejs --save
エクスプレスディレクトリレベルでコマンドnpm install ejs
を使用してejs
をインストールすると、問題が解決しました。
エクスプレスガイドに記載されている手順を使用してエクスプレスをインストールしています http://expressjs.com/guide.html
オプション--saveを使用して、expressとejsの両方をインストールしました。
npm install ejs --save npm install express --save
このように、エクスプレスとejは依存package.jsonファイルです。
Npm、express、ejsを再インストールすると問題が解決しました
これは私のために働いた、
その後、エラーは修正されました。
この問題がありました。 node-inspectorを使用してデバッグしたところ、エクスプレスソースファイルがあるnode_modulesフォルダーから、ejsがインストールされていないことがわかりました。そこで、そこにインストールして動作しました。
npm install -g ejs
は、同じnode_modulesフォルダーにNODE_PATHが設定されているにも関わらず、予想した場所に配置しませんでした。間違ってやっている問題、ただノードから始めた。
package.json
に依存関係を追加し、npm install
を実行します
{
...
...
"dependencies": {
"express": "*",
"ejs": "*",
}
}
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');
_
Ejsテンプレートエンジンがマシンに正しくインストールされていないと思います。 npmを使用してテンプレートエンジンをインストールするだけです
npm install ejs --save
その後、app.jsに次のコードを含めます
app.set('view engine', 'ejs')
ステップ1
見る npm ls | grep ejs
プロジェクトのルートレベルで、ejs
dependency
をプロジェクトに既に追加しているかどうかを確認します。
そうでない場合は、dependencies
としてプロジェクトに追加します。 (私はpackage.json
の代わりに npm install
ingモジュール。)
例えば。
{
"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]
私の場合、それは愚かな間違いでした。ミドルウェアのタイプミスでした。 app.set('view engine', 'ejs.');
と書いたのは、ドットがエラーを引き起こしたためです。 ejsをインストールし、ローカルで表現しました
私と同じ問題が発生したときの方法。
JSONファイルのejsに依存関係があり、ローカルおよびグローバルにインストールしようとしましたが、機能しませんでした。
その後、私は手動でモジュールを追加しました:
app.set('view engine','ejs');
app.engine('ejs', require('ejs').__express);
その後、動作します。
package.jsonファイルの依存関係が最新であることをご確認ください。 NPMが最新バージョンであることも確認した後、一度に1つずつ再インストールしてみてください。それは私のために働いた。パッケージに対してnpm install
を実行することをお勧めします(依存関係を手動で追加したために動作を拒否した後、私のケースで動作したことです)。
私の場合、愚かな構文エラーはありませんでしたが、同じエラーが発生しました。 ejsとejs-mateをグローバルにインストールしました。ローカルにインストールしましたが、エラーは解決しました。
プロジェクトディレクトリにExpressをインストールした後、同じ問題が解決します。以前は、npm installコマンドで-gオプションを使用してグローバルスコープにインストールしました。
app.set('view engine', 'ejs')
そして、ターミナルで
npm install ejs --save
問題を解決します