0

我正在学习和node.js模板。当我学习一些代码时,我发现他们可以在模板中调用,而无需在渲染时将其作为变量发送。expressejsconfig

是一个很小的项目,作为“待办事项”程序,

在它的views/layout.html中,我发现

<title><%= config.site_name %></title>

但在控制器/todo.js

我懂了

var config = require('../config');
...
res.render('index', {todos: rows});

显然它不会发送configejs,尽管一开始是todo.js必需config的。

那么为什么ejs渲染器可以config在渲染时调用呢?

TIA

4

1 回答 1

1

它使用app.helpers,将数据暴露给视图。

例子:

app.helpers({foo: "bar"});

相当于做:

res.render("index", {foo: "bar"});

在每次调用render.

编辑:还有,它可以让你在和app.dynamicHelpers上使用东西:reqres

app.dynamicHelpers({
  foo: function(req, res) {
    return req.session.foo;
  }
});

我建议通读Express 指南,它很短,可以让您大致了解 Express 中可用的内容。

于 2012-03-13T11:38:14.127 回答