3

ノード+エクスプレスで自分の道を歩み始めると、次の違いは何ですか:

app.set(key, value)

app.locals({key: value});

Express ドキュメントを読んだところ、レンダリングされたすべてのビューに app.locals が渡されると記載されていますが、ジェイド ビューからも設定にアクセスできました (#{settings.someKey} を使用)。両方とも jade テンプレートで利用できるので、2 の違いや使い方がわかりません。

4

1 に答える 1

3

違いは、直接操作することで、プレフィックス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'
于 2013-03-20T13:19:15.417 に答える