如何在node.js 中填充ejs模板数据
如题,
我有一个页面:
<!---index.html.ejs--->
<html>
<head>
<title><%= title %></title>
</head>
<body>
<h1><%= title %></h1>
<p>Contents:<br />
<%= contents %>
</p>
</body>
</html>
//data.json
{
"title":"Hello World!",
"contents":"你好!世界!!"
}
//func.js
const readFile = require('util').promisify(require('fs').readFile);
const renderFile = require('util').promisify(require('ejs').renderFile);
async function render_page(template,dbfile){
let result = await readFile(dbfile).catch(err=>{
return new Error("readFile ERROR: " + err);
});
result = result.toString();
let r = renderFile(template,result).catch(err=>{
return new Error("renderFile ERROR: " + err);
});
return r;
}
exports.render = render_page;
//index.js
let result = require('./func').render('index.html.ejs','data.json');
执行后反馈不能识别出ejs模板的title是啥……
这是为啥?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是不是因为你把 result转成了字符串,所以读取不到里面的 title 属性。
去掉 result = result.toString() 试试?
不要传json