在nodejs&快递,设置和设置之间的区别是什么?当地人

时间:2013-03-20 11:19:39

标签: node.js express

在node + express中开始我的方式,有什么区别:

app.set(key, value)

app.locals({key: value});

我已阅读明文档,并声明app.locals会传递给所有渲染的视图,但我也能够从jade视图访问设置(使用#{settings.someKey})。 由于两者都在玉器模板中可用,我似乎无法弄清楚2的差异或不同的用法。

1 个答案:

答案 0 :(得分: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'