如何将数据库中存储的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>
<% }) %>

但这显然呈现了存储在数据库中的数据(带有 pstrong 标签)。

我尝试了什么:

如何将其转换为 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 打印它。