首页 > 解决方案 > 如何在nodejs中显示来自mongodb数据库的html

问题描述

我一直试图弄清楚如何在 mongodb 表中显示 html 标签。每次我通过浏览器查看数据时,它都会显示 html 的文本。例子:

我在 mongodb 数据库表中有这个:

测试 在网页上查看时应显示为:测试

但相反,它显示测试

标签: node.jsdatabase

解决方案


你的问题

我以前没有使用过EJS,但我假设它是您如何将数据库中的 HTML 字符串插入 EJS 模板的问题。

在大多数模板引擎中,简单地插入一个包含 HTML 标记的字符串将导致引擎转义HTML 而不是渲染它。

示例
输入 ><div class='box'> <p class='item'>Hello World</p></div>
输出 >&lt;div class='box'&gt; &lt;p class='item'&gt;Hello World&lt;/p&gt;&lt;/div&gt;

这是正常的,有很多原因,其中之一就是安全性。

解决方案

如果实际上是 EJS 转义 HTML 的问题,您必须指示 EJS 不要转义它。我以前从未使用过 EJS,但是快速谷歌搜索显示EJS escape html了这个结果如何在 node.js EJS 视图中转义 HTML?

备查

虽然默认情况下 EJS 会转义您的 HTML,但堆栈溢出不会。当您插入<strong>问题时,堆栈溢出将其呈现为 HTML。

要让 StackOverflow(和大多数其他降价阅读器)像我在上面所做的那样逐字地呈现任何 HTML 标记,请将 HTML 包装在Graves中。

此外,请尝试在您的问题中提供更多信息。信息越多,就越容易推断出问题的可能根源。


推荐阅读