3

我是 node.js 的新手。我正在尝试使用 EJS 模板,但遇到了一点障碍。如果我做对了,<% %> 中的所有代码都会在服务器端执行。我不知道如何使用位于这些标签内的模块(js 文件)中的 javascript 函数。我应该包括他们<script src="...">吗?但这意味着它将被发送到浏览器,但我不想要那个(或者我想要吗?)。什么是正确的架构?


第二个问题是:ejs helper 具体是什么?我怎样才能做一个?(对不起,我找不到任何简单的例子)

4

2 回答 2

3

听起来您在模板中使用了太多逻辑。您不想调用自定义函数,也不想使用那些 HTML 助手。

相反,您要做的是正确定义绑定到模板的数据模型,并将业务逻辑与数据模型包装在一起。

然后创建数据对象的实例并将其传递给 EJS。

你的导向是tagsoup地狱。模板的目标仅仅是使用简单的循环和部分视图将 JSON 转换为 HTML。

于 2011-05-19T20:11:34.470 回答
3

老问题,但万一其他人在这里绊倒......

在 Express 3 中,您可以将助手添加到 app.locals。前任:

app.locals.somevar = "hello world";

app.locals.someHelper = function(name) {
  return ("hello " + name);
}

这些可以在您的视图中访问,如下所示:

<%= somevar %>
<%= someHelper('world') %>
于 2013-04-19T06:06:35.280 回答