如何:使用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);