1

私は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 が定義されていません」というエラーが表示されます。

私は何を間違っていますか?

4

1 に答える 1