我是 node.js 的新手。我正在尝试使用 EJS 模板,但遇到了一点障碍。如果我做对了,<% %> 中的所有代码都会在服务器端执行。我不知道如何使用位于这些标签内的模块(js 文件)中的 javascript 函数。我应该包括他们<script src="...">
吗?但这意味着它将被发送到浏览器,但我不想要那个(或者我想要吗?)。什么是正确的架构?
第二个问题是:ejs helper 具体是什么?我怎样才能做一个?(对不起,我找不到任何简单的例子)
我是 node.js 的新手。我正在尝试使用 EJS 模板,但遇到了一点障碍。如果我做对了,<% %> 中的所有代码都会在服务器端执行。我不知道如何使用位于这些标签内的模块(js 文件)中的 javascript 函数。我应该包括他们<script src="...">
吗?但这意味着它将被发送到浏览器,但我不想要那个(或者我想要吗?)。什么是正确的架构?
第二个问题是:ejs helper 具体是什么?我怎样才能做一个?(对不起,我找不到任何简单的例子)
听起来您在模板中使用了太多逻辑。您不想调用自定义函数,也不想使用那些 HTML 助手。
相反,您要做的是正确定义绑定到模板的数据模型,并将业务逻辑与数据模型包装在一起。
然后创建数据对象的实例并将其传递给 EJS。
你的导向是tagsoup地狱。模板的目标仅仅是使用简单的循环和部分视图将 JSON 转换为 HTML。
老问题,但万一其他人在这里绊倒......
在 Express 3 中,您可以将助手添加到 app.locals。前任:
app.locals.somevar = "hello world";
app.locals.someHelper = function(name) {
return ("hello " + name);
}
这些可以在您的视图中访问,如下所示:
<%= somevar %>
<%= someHelper('world') %>