Express + ejs で「include not found」
自社サービスの開発は、Nodejs + Express + EJS でやっています。
メニュー関連を共通化するために include させています。
今回はそこでハマりました。。。orz
ejsの「include not found」って、なによ??
今回ハマったのが、外部ファイルを include したとき、「include not found」ってエラーが発生しました。
最近のマイブームでChatGPTさんに質問をしたところ・・・
C:includeが認識されていない。古いバージョン使ってるなら最新版にしましょう!
く:認識されてないのはエラー見たらわかるし。。。確かにVer2使ってるからあげちゃおか!
ってことで、最新の3.x.xを入れ直しました。
でもって、さぁ〜てとやったところ・・・・同じやん(><)
ChatGPTさんには、よくあることなんで、やられた〜って感じ(^^;
次に、ググってみました。
そしたらそれっぽいのが・・・・
ejsの「include not found」ってなんやったん?
正直な感想を言うと、「include not found」でincludeが見つからないってのは、関係なかったです(^^;
原因としては、ejsにわたす変数名に”client”ってのを使っていたせいでした。
例えばですが、
node側res.render( 'abc', {
id : 5,
client : '123'
});
ejs側
<%= id =>
<%= client =>
この様になっているのが原因でした。
clientをclient01とかに変更すればエラーは解消されたんです。
行ってみればコンパイルエラー?
まぎらわしい。。。
終わりに。。。
原因が判明し、事なきを得たのですが、修正箇所が多い(><)
しかし、英語サイトにはこの減少が散見されたんで、割と一般的なエラーなんかな(^^;