我需要创建一个可以在所有嫩枝模板中访问的变量,而无需将其添加到express中的所有渲染对象中。
或者我需要一个在控制器完成其特征设置后添加此变量的方法。
答案 0 :(得分:1)
尝试使用app.locals
http://expressjs.com/en/5x/api.html#app.locals
app.locals app.locals对象具有作为应用程序内局部变量的属性。
console.dir(app.locals.title)
// => 'My App'
console.dir(app.locals.email)
// => 'me@myapp.com'
设置后,app.locals属性的值将在应用程序的整个生命周期中保持不变,而res.locals属性仅在请求的生命周期内有效。
您可以在应用程序内呈现的模板中访问局部变量。这对于为模板以及应用程序级数据提供帮助功能很有用。本地变量可通过req.app.locals在中间件中使用(请参见req.app)
app.locals.title = 'My App'
app.locals.strftime = require('strftime')
app.locals.email = 'me@myapp.com'