在PUG中解析数据库中的数据
我的mongo数据库中有此数据,但我无法控制它,因为从应用程序导出到数据库的数据会更新html标记(我认为正确的术语是‘编码’,但我不确定)
<div>This is some test profile text<br /></div><div><br /></div><div>Hop this prints fine<br /></div><div><br /></div><div><b>Hello</b><br /></div><div><br /></div><div>Testing</div>
当我尝试用
解析它时 .exhibitor-profile
| !{exhibitor.profile}
打印如下
<div>This is some test profile text<br /></div><div><br /></div><div>Hop this prints fine<br /></div><div><br /></div><div><b>Hello</b><br /></div><div><br /></div><div>Testing</div>
如果我使用
.exhibitor-profile
| #{exhibitor.profile}
打印如下
<div>This is some test profile text<br /></div><div><br /></div><div>Hop this prints fine<br /></div><div><br /></div><div><b>Hello</b><br /></div><div><br /></div><div>Testing</div>
与数据库中的数据基本相同。但是我希望它输出为HTML..
如何执行此操作?
解决方案
如果您正在使用节点,请继续阅读。
安装js-htmlencode包:
npm install -S js-htmlencode
然后通过htmlDecode
方法运行一次原始数据库输出。在将数据传递到PUG脚本之前,您应该在服务器应用程序中执行此操作:
服务器Javascript:
const htmlDecode = require("js-htmlencode").htmlDecode;
app.get("/htmldecode", (req, res) => {
const raw = "<h1>This is <span style='color:red'>RED</span>!!</h1>"
res.render("htmldecode", { raw: raw, decoded: htmlDecode(raw) })
});
htmldecde.pug:
html
head
body
h3 Html Decoding Twice
p Using !: !{raw}
p Using #: #{raw}
p Final: !{decoded}
实际产量:
需要注意的是,!{raw}
不会渲染到<h1>…
中。它按字面表示,即转换为<h1>…
。该浏览器将<
显示为<
。
请注意使用!
运算符时的所有注意事项。
相关文章