express.js ejs 没有呈现我的 html
express.js ejs not rendering my html
我将 Express.js 与 EJS 一起使用,以将来自数据库查询的响应呈现为 html 无序列表。我也在使用 json2html。我没有收到任何错误,但我的列表项元素没有呈现为 HTML。我做错了什么?
页面在我的浏览器中呈现如下 -
我的 Express 路由器处理程序 -
var $stmt = squel.select().from('GrpPractice').field('*').toString();
router.get('/', handler1);
function handler1(req, res) {
db.all($stmt, function(err, rows) {
var transform = {'tag':'li', 'html':'${Organization legal name}'};
var html = json2html.transform(rows, transform);
res.render('index', { title: 'Group Practices', html });
// res.send(rows);
});
}
还有我的 EJS 模板 -
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
<ul>
<%= html %>
</ul>
</body>
我的数据看起来格式正确 -
[{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"CHERL","Last Name":"MUES","Credential":"","Primary specialty":"NURSE PRACTITIONER"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"PAUL","Last Name":"GLOWACKI","Credential":"MD","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"MONTY","Last Name":"SELLON","Credential":"","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"MILO","Last Name":"ANDERSON","Credential":"","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"ANDREW","Last Name":"OPP","Credential":"","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"KRISTEN","Last Name":"KOSIR","Credential":"OD","Primary specialty":"OPTOMETRY"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"NIROPA","Last Name":"PRASAD","Credential":"","Primary specialty":"OPTOMETRY"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"ROBERT","Last Name":"MCCAMY","Credential":"OD","Primary specialty":"OPTOMETRY"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"DARREL","Last Name":"CRISSLER","Credential":"","Primary specialty":"OPTOMETRY"},{"Organization legal name":"5MD CONVENIENT CARE LLC","Group Practice PAC ID":"2567643026","Number of Group Practice members":4,"First Name":"JULIE","Last Name":"HATCH","Credential":"","Primary specialty":"NURSE PRACTITIONER"}]
如果我登录到控制台,它看起来是有效的 html
<li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>5MD CONVENIENT CARE LLC</li>
如果我在浏览器中查看页面源代码(谢谢 Tomasz Jakub Rup),那么无效...
<body>
<h1>Group Practices</h1>
<p>Welcome to Group Practices</p>
<ul>
<li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>5MD CONVENIENT CARE LLC</li>
</ul>
</body>
谁能指出我做错了什么?我的浏览器似乎将其解释为文本字符串,而不是标记。
将<%= html %>
替换为<%- html %>
ejs 不太流行的约定:
<%=
产生转义值
<%-
产生未转义值
lodash.template 有一个逆向约定(更流行):
<%-
产生转义值
<%=
产生未转义值
我将 Express.js 与 EJS 一起使用,以将来自数据库查询的响应呈现为 html 无序列表。我也在使用 json2html。我没有收到任何错误,但我的列表项元素没有呈现为 HTML。我做错了什么?
页面在我的浏览器中呈现如下 -
我的 Express 路由器处理程序 -
var $stmt = squel.select().from('GrpPractice').field('*').toString();
router.get('/', handler1);
function handler1(req, res) {
db.all($stmt, function(err, rows) {
var transform = {'tag':'li', 'html':'${Organization legal name}'};
var html = json2html.transform(rows, transform);
res.render('index', { title: 'Group Practices', html });
// res.send(rows);
});
}
还有我的 EJS 模板 -
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
<ul>
<%= html %>
</ul>
</body>
我的数据看起来格式正确 -
[{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"CHERL","Last Name":"MUES","Credential":"","Primary specialty":"NURSE PRACTITIONER"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"PAUL","Last Name":"GLOWACKI","Credential":"MD","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"MONTY","Last Name":"SELLON","Credential":"","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"MILO","Last Name":"ANDERSON","Credential":"","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"23RD FAMILY MED LLC","Group Practice PAC ID":"3375715477","Number of Group Practice members":5,"First Name":"ANDREW","Last Name":"OPP","Credential":"","Primary specialty":"FAMILY PRACTICE"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"KRISTEN","Last Name":"KOSIR","Credential":"OD","Primary specialty":"OPTOMETRY"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"NIROPA","Last Name":"PRASAD","Credential":"","Primary specialty":"OPTOMETRY"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"ROBERT","Last Name":"MCCAMY","Credential":"OD","Primary specialty":"OPTOMETRY"},{"Organization legal name":"3-D OPTICAL","Group Practice PAC ID":"1951361732","Number of Group Practice members":4,"First Name":"DARREL","Last Name":"CRISSLER","Credential":"","Primary specialty":"OPTOMETRY"},{"Organization legal name":"5MD CONVENIENT CARE LLC","Group Practice PAC ID":"2567643026","Number of Group Practice members":4,"First Name":"JULIE","Last Name":"HATCH","Credential":"","Primary specialty":"NURSE PRACTITIONER"}]
如果我登录到控制台,它看起来是有效的 html
<li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>5MD CONVENIENT CARE LLC</li>
如果我在浏览器中查看页面源代码(谢谢 Tomasz Jakub Rup),那么无效...
<body>
<h1>Group Practices</h1>
<p>Welcome to Group Practices</p>
<ul>
<li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>23RD FAMILY MED LLC</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>3-D OPTICAL</li><li>5MD CONVENIENT CARE LLC</li>
</ul>
</body>
谁能指出我做错了什么?我的浏览器似乎将其解释为文本字符串,而不是标记。
将<%= html %>
替换为<%- html %>
ejs 不太流行的约定:
<%=
产生转义值
<%-
产生未转义值
lodash.template 有一个逆向约定(更流行):
<%-
产生转义值
<%=
产生未转义值