私はnodejsエコシステム全体に慣れていないので、親切にゆっくりと話し、小さな言葉を使用してください。
過去に PHP で Web サイトを開発するときは、通常、header.php と footer.php をインクルードしていました。通常、header インクルードには HTML の head 要素が含まれているため、title タグと meta タグのデフォルト値を定義するために、通常、header.php で次のようなロジックを実装しました。
if (title is not defined) {
use some default title;
}
これにより、個々のページにタイトル タグやメタ ディスクリプション タグを設定していない場合に、デフォルトのグローバル値を使用することができます。
私は、sails.js で同じことをしようとしていますが、奇妙な結果が得られます。いくつかのビュー(「test.ejs」など)では、次のものがあります。
<%
var pg_title = 'test';
%>
<%- include header.ejs %>
そして、ヘッダーに次のものがあります:
<%
console.log(pg_title);
%>
これは機能します。(つまり、「テスト」をエコーします)
ただし、pg_title が定義されているかどうかの何らかのテストが header.ejs に含まれている場合、test.ejs で設定された pg_title の値は常に無視されます (「未定義」と表示されます)。
現在、header.ejs には次のコードが含まれていますが、いくつかの異なることを試しました。
if (typeof pg_title == 'undefined') {
var pg_title = __('pg_title_default');
}
上記の条件は、常に true と評価されます。以下で Ravi が示唆するように、header.ejs の「var」を削除すると、「pg_title が定義されていません」というエラーが表示されます。
私は何を間違っていますか?