是否有像c#razorengine模板引擎nodejs
是否有一个模板引擎的nodejs像razorengine这是专门输出HTML,但不限于HTML。 所以我可以随便创buildJavaScript文件,就像我可以用RazorEngine一样?
我希望能够做的一个例子:
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>
一般来说,只有less数视图引擎(如Jade )主要针对产生标记。 大多数会使用某种forms的embedded式语句 – 类似于Razor的@...
,如胡须的{{...}}
– 来支持模板化所需的文本内容。
而且,通常任何耦合到请求/响应将由http
框架的一部分创build。 使用Express,例如(ref: app settings , 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。 它是为客户端devise的,但有些柚木可以在JavaScript的服务器上工作