You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB存储HTML标签并在EJS中正常显示?

解决EJS中渲染MongoDB存储的HTML内容问题

核心解决方案:用EJS未转义输出标签

EJS默认会自动转义HTML内容(避免XSS风险),所以用<%= %>输出时,HTML代码会被当成纯文本显示。要正确渲染完整的HTML结构,直接使用未转义输出标签 <%- %>即可。

假设你从MongoDB取出的HTML内容存在变量articleContent里,在EJS模板中这么写:

<%- articleContent %>

为什么之前的方法无效?

你尝试的dom-parse这类工具,是用来解析DOM节点的,但你的MongoDB里存的是转义后的HTML字符串(带&lt;、&gt;这类实体字符),直接解析只会得到转义后的文本,而非真正的HTML元素。这种情况下,直接用EJS的未转义输出才是最直接高效的方式,不需要额外解析工具。

额外安全提示

如果你的HTML内容来自不可信来源,要防范XSS攻击。可以先用sanitize-html这类库过滤危险标签,再输出:

// 后端Node.js处理示例
const sanitizeHtml = require('sanitize-html');
const safeContent = sanitizeHtml(articleContent);
// 将safeContent传入EJS模板

模板里依然用<%- safeContent %>渲染过滤后的内容。

内容的提问来源于stack exchange,提问作者Youssef Askar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:20:32