来自数据库的数据在网页上显示时带有 html 标签而不是格式化文本
Data from DB displays on webpage with html tags instead of formatted text
Node.js 带有 Express、MongoDB、Pug 和 CKEditor 4 的应用程序。问题是:我尝试将数据从编辑器提交到数据库,然后在网页上显示它们。数据显示为带有 html 标签的纯文本,而不是在编辑器中显示的格式化文本。
我的问题是:为什么数据显示不正常,如何解决?
图片 1 - 提交前格式化
图 2 - 网页上来自数据库的数据
网页来源:
<li>Article One</li>
<li>Article One</li>
<li>Article One</li>
</ol>
代码片段:
1) article.pug
extends layout
block content
h1.page-header= article.title
h5 Written by #{author}
p= article.body
2) 添加_article.pug
extends layout
block content
h1.page-header #{title}
form(method='POST' action='/articles/add')
#form-group
label Title:
input.form-control(name='title' type='text')
#form-group
label Body:
textarea.form-control(name='body' id='editor')
br
input.btn.btn-primary(type='submit' value='Submit')
3) main.js
CKEDITOR.replace('editor')
HTML 在 Pug 中默认被转义。您需要将内容包装在 !{ }
中以使其不被转义。在此处查看更多信息:https://pugjs.org/language/interpolation.html#string-interpolation-unescaped
请注意,未转义的渲染 HTML 可能会带来安全风险。
Node.js 带有 Express、MongoDB、Pug 和 CKEditor 4 的应用程序。问题是:我尝试将数据从编辑器提交到数据库,然后在网页上显示它们。数据显示为带有 html 标签的纯文本,而不是在编辑器中显示的格式化文本。
我的问题是:为什么数据显示不正常,如何解决?
图片 1 - 提交前格式化
图 2 - 网页上来自数据库的数据
网页来源:
<li>Article One</li>
<li>Article One</li>
<li>Article One</li>
</ol>
代码片段:
1) article.pug
extends layout
block content
h1.page-header= article.title
h5 Written by #{author}
p= article.body
2) 添加_article.pug
extends layout
block content
h1.page-header #{title}
form(method='POST' action='/articles/add')
#form-group
label Title:
input.form-control(name='title' type='text')
#form-group
label Body:
textarea.form-control(name='body' id='editor')
br
input.btn.btn-primary(type='submit' value='Submit')
3) main.js
CKEDITOR.replace('editor')
HTML 在 Pug 中默认被转义。您需要将内容包装在 !{ }
中以使其不被转义。在此处查看更多信息:https://pugjs.org/language/interpolation.html#string-interpolation-unescaped
请注意,未转义的渲染 HTML 可能会带来安全风险。