Nodejs express.js - 如何在视图中呈现原始html

时间:2017-05-22 22:34:03

标签: javascript html node.js express

我正在使用Node.js和Express制作个人博客。我用两个字段保存每个帖子,标题和内容。

在内容中我会有几个paragrah和Images,因此我想在内部编写html,然后将该内容显示为原始html,例如:

我的内容:

lsusb

如何渲染看起来不错并且不显示html标签?是否有任何包来呈现这种东西?

2 个答案:

答案 0 :(得分:0)

这个源帮助我使用模板进行渲染: https://scotch.io/tutorials/use-ejs-to-template-your-node-application 我使用EJS作为渲染模板。翡翠和车把是其他选择。

作为澄清,您想要以HTML格式显示文本,但不显示标记吗?

答案 1 :(得分:0)

您希望呈现未转义的内容。

通常,默认模板引擎以安全的方式呈现内容,即它们将转义任何html内容。例如,如果您尝试呈现html链接标记,则安全呈现会将<a>更改为&lt;a&gt;。当浏览器收到转义内容时,它会以可视方式显示<a>。但从语义上讲,浏览器不是链接

Handlebars是nodejs的流行渲染引擎,如前面提到的EJS。要使用Handlebars进行安全渲染,您需要使用双括号{{mycontenthere}}。要使用Handlebars进行不安全的渲染(即,你想要的),你需要使用三重括号{{{myContentHere}}}

我已经在github上放了一个skeleton for Express and Handlebars,其中Handlebars已经安装了Express。

  • 在您的控制器文件中:res.render('mytemplate.hbs', {myContent: myContent});
  • 在您的模板文件中:{{{myContent}}}