node.jsがejsテンプレートにデータを送信する2つの方法


node.jsでejsテンプレートにデータを送信するには、方法1、サンプルコードの2つの方法があります.
        res.render('viewName',{name1:'value1', name2:'value2',...});

構文:
        res.render(view, [locals], callback);

説明:
view:テンプレートファイル名
locals:テンプレート内のすべての変数のkey-valueのJSONデータ
callback:コールバック関数
弊害:この方法では、テンプレートに値を割り当てるときに、テンプレート内のすべての変数を一度に値を渡さなければなりません.そうしないと、エラーが発生します.
メソッド2、サンプルコード:1)
        res.locals({title:'  '});
        res.locals({showMessage:'      '});
        res.render('index');

            
            2)
        res.locals.title = '  ';
        res.locals.showMessage = '      ';
        res.render('index');

このメソッドの2つの方法で使用できます.
        
利点:テンプレート内のすべての変数に一度に値を渡す必要がなく、PHPとsmartyテンプレートを結合する方法に似たステップで値を伝えることができます.ステップで値を転送できますが、テンプレート(res.render)をレンダリングする前に、すべての変数に値を転送する必要があります.そうしないと、エラーも発生します.これはPHPとsmartyテンプレートの最大の違いです.
補足説明:前述したように、テンプレートに値を渡すときは、テンプレート内のすべての変数を値に渡さなければなりません.そうしないと、エラーが発生します.則才の試験を経て、ejsテンプレートファイルでは、判断を利用してこの問題を解決することができることが分かった.サンプルコードは以下の通りである.
            <% if (locals.title) { %>
            <%= locals.title %>
            <% } %>
titleに伝達値がある場合、表示されます.値が伝わっていないときも、間違いを報告することはありません.
親測可.