今回、express 3.4.7において、テンプレートエンジンにejsを指定して以下のコマンドを入力してnode_express_testという名前のスケルトンを作成しました
express node_express_test -s -t ejs
起動させた後、ブラウザ側でアクセスしたときに以下のエラーが出ました
500 Error: Cannot find module 'jade'
- at Function.Module._resolveFilename (module.js:338:15)
- at Function.Module._load (module.js:280:25)
- at Module.require (module.js:364:17)
- at require (module.js:380:17)
ejsと指定したはずなのに、テンプレートエンジンがjadeになっているとのことでした。
作成したnode_express_testの直下に、使用するモジュールを管理するpackage.json
があります。
ここを確認すると
"dependencies": {
"express": "3.4.7",
"jade": "*"
}
と書かれていました。
なぜなのかと思って調べたら以下のサイトに全く同じ感じで対処法が書いてありました。
要するに、expressでスケルトンを作成するときに -tejsというかんじで、-tのあとにスペースを入れちゃいけないそうです。
これをやったあとで ejsが無いという感じでエラーが出たら、単純にejsが入っていないので、node_express_test直下で
npm install -d すれば依存するやつまるまる入れてくれます
ここが参考になりました
http://49hack.net/?p=454
これをやったあとで ejsが無いという感じでエラーが出たら、単純にejsが入っていないので、node_express_test直下で
npm install -d すれば依存するやつまるまる入れてくれます
ここが参考になりました
http://49hack.net/?p=454