【问题标题】:Using HTML Helpers in Node.js?在 Node.js 中使用 HTML 助手?
【发布时间】:2012-05-02 12:12:11
【问题描述】:
node.js 和 express 的模板引擎太多了,甚至还有这个详细的比较:http://paularmstrong.github.com/node-templates/index.html 这让我检查了 EJS、Mu2 和 JQTpl,我花了几个小时来试验哪些适合我的需要最好的。
我知道关于哪个框架最好已经有几个问题,但没有一个问题集中在使用帮助程序的可能性上。我尝试构建一个表单助手(如果我将一个对象传递给它,它应该呈现输入标签及其值),但我没有找到一个直接的方法来完成它。
是否有任何可推荐的模块使我能够使用助手?甚至可能使用 mustache.js(对我来说,这感觉是我尝试过的最好的)?提前致谢!
【问题讨论】:
标签:
function
templates
node.js
express
helper
【解决方案1】:
我无法将您指向您正在寻找的比较,但我看过的几乎所有模板引擎都有帮助工具。
如果您使用的是 Express(您在问题中提到),您可以告诉 Express 您希望向您使用的任何模板引擎公开哪些帮助程序(通过“视图引擎”应用程序变量设置) - 请参阅以下部分Express Guide 的详细信息:
- 查看渲染 - 说明如何配置 Express 以使用特定的模板引擎。该示例引用了 Jade,它默认安装在 Express 中,并且支持 helpers。
- Server.helpers() - 如何注册静态视图助手以传递给您的模板
- Server.dynamicHelpers() 如何注册可以访问请求和响应对象的助手
一些模板引擎内置了对 Express 的支持,尽管它们可能需要额外的配置步骤。我偏爱 CoffeeKup(以及更新的 fork coffeecup),它可以让你在 Coffeescript 中写下你的观点;启用自动编译需要额外调用 Express 服务器对象(并在文档中介绍):
app.register('.coffee', coffeecup.adapters.express);
其他人可能会提供额外的节点包,您可能会发现npm search express- 具有指导意义。例如,express-handlebars 专门修复了 app.helpers() 和 app.dynamicHelpers() 以使用车把。 (免责声明:我没有亲自使用过这个模块)。