node.js - 在node js & express中,settings和locals有什么区别

标签 node.js express

开始我的node+express之路,有什么区别:

app.set(key, value)

app.locals({key: value});

我已经阅读了 express 文档,它指出 app.locals 被传递到所有呈现的 View ,但我也能够从 jade View 访问设置(使用#{settings.someKey})。 由于两者都在 jade 模板中可用,我似乎无法弄清楚两者的区别或不同用法。

最佳答案

不同之处在于,通过直接操作 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'

关于node.js - 在node js & express中,settings和locals有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15522066/

相关文章:

node.js - 将 Nodemailer 与不同的电子邮件提供商一起使用

node.js - 如何在 Sails.js 中使用自定义路由中间件? (ExpressJS)

postgresql - 使用 sequelize-cli db :seed, 模式在访问 Postgres 时被忽略

javascript - Node js 在事件中抛出异常

node.js - AWS SageMaker - 请求的图像格式无效

node.js - 经过身份验证的用户的 Sails.js 单个实例

javascript - 如何在 Jest 测试函数中模拟变量?

node.js - 您如何以及在何处定义 Meteor 中的数据库结构?

node.js - 当文件数量超出限制时,如何处理 multer 中的上传调用产生的错误?

javascript - CSSLint : How to save log from console log into file