如何:使用ejs没有明确expression

一般来说,我是从节点开始的,我试图做一个没有明确的网站。 我会不想用ejs注入我的html,这是我的问题是…我如何将ejs.render(…)附加到响应?

PS:我知道这可能是一个更好的select使用快递,但我想知道它是如何工作在桥接之前。

就像是:

var ejs = require("ejs"); function index (response, request, sequelize) { response.writeHead(200, {"Content-Type": "text/html"}); test_data = "test data"; response.end(ejs.render("./views/home.html",test_data)); } exports.index = index; 

但那是有效的^ _ ^

谢谢!

有一个名为Consolidate.js的项目,为许多模板引擎提供了一个通用的API。 这确保了它们都可以互换。 如果你想直接渲染模板,你想与这个API兼容。

来自Consolidate.js自述文件的示例代码:

 var cons = require('consolidate'); cons.swig('views/page.html', { user: 'tobi' }, function(err, html){ if (err) throw err; console.log(html); // Or write to your `res` object here }); 

此示例适用于Swig,但类似的代码适用于EJS或任何兼容的引擎。

首先,你需要安装ejs – > $ npm install ejs –save

简单的例子:

main.ejs:

 <p> <%= exampleRenderEjs %> </p> 

server.ejs

 var ejs = require('ejs'); var fs = require('fs'); var htmlContent = fs.readFileSync(__dirname + '/main.ejs', 'utf8'); var htmlRenderized = ejs.render(htmlContent, {filename: 'main.ejs', exampleRenderEjs: 'Hello World!'}); console.log(htmlRenderized);