如何将数据库中存储的html渲染到ejs页面
How to render the html stored in the database to an ejs page
我认为这很简单,但似乎无法弄清楚。
我在我的 nodejs/express 网络应用程序中安装了 Quilljs 编辑器,它将我的描述存储在 mysql 数据库中作为 <p><strong>This is the quill data. How are we doing dev?</strong></p>
。
现在我的 ejs 页面如下所示:
<% data.forEach(function(d,index){ %>
<p> <%= d.description %> </p>
<% }) %>
但这显然呈现了存储在数据库中的数据(带有 p
和 strong
标签)。
我尝试了什么:
- 尝试使用
<pre>
以便格式保持不变(只是新手尝试)。
- 尝试了 jquery 的
.html()
和 .load()
方法将数据更新为 HTML 但没有用。
如何将其转换为 html?以便格式化文本打印结果 HTML 而不是源代码。
使用<%-
代替<%=
<% data.forEach(function(d,index){ %>
<p> <%- d.description %> </p>
<% }) %>
您可以查看标签段落以了解更多关于 <%=
或 <%-
在 ejs docs
中的使用
注意:如果这样做,请注意 XSS 问题。
你需要一个 sanitize-html 来保存你的 html。
编辑1
您不需要将其分配给新变量。
<% data.forEach(function(d,index){ %>
<% if (d.description.length > 75) { %>
<p> <%- d.description.substring(0, 75) %> </p>
<% } else { %>
<p> <%- d.description %> </p>
<% }%>
<% }) %>
不要保存 HTML。
这会给您带来很多问题。
尝试制作一些任意数据结构,例如 json 并使用您的 EJS 打印它。
我认为这很简单,但似乎无法弄清楚。
我在我的 nodejs/express 网络应用程序中安装了 Quilljs 编辑器,它将我的描述存储在 mysql 数据库中作为 <p><strong>This is the quill data. How are we doing dev?</strong></p>
。
现在我的 ejs 页面如下所示:
<% data.forEach(function(d,index){ %>
<p> <%= d.description %> </p>
<% }) %>
但这显然呈现了存储在数据库中的数据(带有 p
和 strong
标签)。
我尝试了什么:
- 尝试使用
<pre>
以便格式保持不变(只是新手尝试)。 - 尝试了 jquery 的
.html()
和.load()
方法将数据更新为 HTML 但没有用。
如何将其转换为 html?以便格式化文本打印结果 HTML 而不是源代码。
使用<%-
代替<%=
<% data.forEach(function(d,index){ %>
<p> <%- d.description %> </p>
<% }) %>
您可以查看标签段落以了解更多关于 <%=
或 <%-
在 ejs docs
注意:如果这样做,请注意 XSS 问题。
你需要一个 sanitize-html 来保存你的 html。
编辑1
您不需要将其分配给新变量。
<% data.forEach(function(d,index){ %>
<% if (d.description.length > 75) { %>
<p> <%- d.description.substring(0, 75) %> </p>
<% } else { %>
<p> <%- d.description %> </p>
<% }%>
<% }) %>
不要保存 HTML。
这会给您带来很多问题。 尝试制作一些任意数据结构,例如 json 并使用您的 EJS 打印它。