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

MongoDB存储含锚标签文章,EJS模板锚标签显示为纯文本的解决方法

解决EJS渲染HTML标签被转义的问题
  • 替换EJS渲染语法:直接把原来的<%= article.content %>改成<%- article.content %>。<%= %>会自动转义HTML内容,而<%- %>会输出未转义的原始HTML,这样存储的<a>锚标签就能正常解析成可点击的链接。
  • 防范安全风险:如果文章内容来自用户输入,直接渲染未转义的HTML可能引发XSS攻击。可以用HTML过滤库对内容做预处理,只保留安全的标签和属性,再传入模板渲染。示例代码如下:
    const sanitizeHtml = require('sanitize-html');
    // 从数据库读取原始内容
    const rawContent = article.content;
    // 只允许<a>标签及href属性
    const safeContent = sanitizeHtml(rawContent, {
      allowedTags: ['a'],
      allowedAttributes: {
        'a': ['href']
      }
    });
    // 将处理后的安全内容传给EJS模板
    res.render('article', { content: safeContent });
    
  • 确认存储格式:确保MongoDB中存储的是原始HTML字符串,不要存成转义后的&lt;a href...&gt;格式,否则即使换用<%- %>也无法正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:05:26