kakts-log

programming について調べたことを整理していきます

expressでテンプレートエンジンにejsを指定したのに jadeがないって言われるエラーの対処法


node開発において、フレームワークであるexpressを使うと簡単にアプリケーションのスケルトンが作れます
今回、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