是否有像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的服务器上工作