ノード+エクスプレスで自分の道を歩み始めると、次の違いは何ですか:
app.set(key, value)
と
app.locals({key: value});
Express ドキュメントを読んだところ、レンダリングされたすべてのビューに app.locals が渡されると記載されていますが、ジェイド ビューからも設定にアクセスできました (#{settings.someKey} を使用)。両方とも jade テンプレートで利用できるので、2 の違いや使い方がわかりません。
違いは、直接操作することで、プレフィックスapp.localsを使用する代わりに、テンプレートの「トップレベル」変数を作成できることです。settings.
app.set(key, value)と同じapp.locals.settings[key] = valueです; 前者は、Expressの特定の部分(設定などview engine)を構成するための推奨される方法です。
編集:彼らが同じことをどのように行うかを示す小さなデモ:
var app = require('express')();
app.set('foo', 'bar');
console.log('app.get("foo"):', app.get('foo')); // 'bar'
console.log('app.locals.settings.foo:', app.locals.settings.foo); // 'bar'
app.locals.settings['foo'] = 'another bar';
console.log('2nd app.get("foo"):', app.get('foo')); // 'another bar'