有没有像 c# razorengine 这样的模板引擎来对付 nodejs
本文关键字:引擎 nodejs razorengine 有没有 | 更新日期: 2023-09-27 18:33:02
是否有像 razorengine 这样专门用于输出 html 但不限于 html 的 nodejs 模板引擎。所以我也可以像使用 RazorEngine 一样动态创建 JavaScript 文件?
我希望能够做的一个例子:
var fs = require('fs');
var engine = require('templatingEngine');
var template = "<p>Hello, <% name %></p>";
var data = [
{id:"1", name: "bob"},
{id:"2", name: "pete"},
{id:"3", name: "jake"}
];
var result = engine.parse(template, data);
fs.writeFile("/tmp/hellos.html", result, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
hellos.html ==>
<p>Hello, bob</p>
<p>Hello, pete</p>
<p>Hello, jake</p>
一般来说,只有少数视图引擎(如 Jade)主要针对生成标记。大多数人会使用某种形式的嵌入式语句 - 类似于Razor的@...
,例如胡子的{{...}}
- 来支持模板化任何所需的文本内容。
而且,通常与请求/响应的任何耦合都将由http
框架的一部分创建。例如,使用Express(参考:应用程序设置,app.engine()
):
app.set('view engine', 'jade');
app.engine('html', require('ejs').renderFile);
确切的 API 可能因视图引擎而异。但是,使用车把,您可以做到:
var handlebars = require('handlebars');
var template = "{{#each this}}<p>Hello, {{name}}</p>{{/each}}";
var compiledTemplate = handlebars.compile(template);
var data = [
{id:"1", name: "bob"},
{id:"2", name: "pete"},
{id:"3", name: "jake"}
];
var result = compiledTemplate(data);
而且,对于视图引擎的样本,consolidate
项目列出了大约 20 个。
是的,它被称为 razorjs,可以在 github
你已经有了AngularJS(和其他基于javascript的引擎),你可以在angularJS中渲染数据,然后将其推送到httpresponse。 它是为客户端设计的,但有一些柚木,它也可以在JavaScript服务器端工作。