如何在 EJS 中渲染作为 Node JS 变量发送的 HTML 标签?

How to render HTML tags sent as Node JS variable in EJS?

免责声明:当我显然是菜鸟时,我问了这个问题,但我留下这个问题希望它能在将来帮助别人。

上下文: 图片使问题更清楚:My issue

我正在开发 Node JS + EJS 博客应用程序。 我有一个单独的页面 (www.domain/compose),我可以在其中为我的 post 写标题和 body。然后我可以通过 www.domain/posts/post-title

访问这个 post

如picture所示,我想发送HTML个可以渲染的标签。

我想按我喜欢的顺序发送任何HTML标签。不仅是 em 和 img 标签。

我的节点服务器代码:

app.post("/compose", (req, res)=>{
  const post = {
    'title': req.body.newPostTitle,
    'body': req.body.newPostContent,
  };
  posts.push(post);
  res.redirect('/');
});

app.get("/posts/:postName", (req, res)=>{
  const urlSuffix = req.params.postName;
  posts.forEach((post)=>{
    const postURL = lodash.kebabCase(post.title);
    if(urlSuffix===postURL || urlSuffix===post.title){
      console.log("Match Found!");
      res.render("post", {postTitle:post.title, postBody: post.body});
      }else{
        console.log("Not a match")
      }
  });
});

我的 EJS 模板代码:

<%- include('partials/header') -%>

<h1><%=postTitle%></h1>
<p><%=postBody%></p>

<%- include('partials/footer') -%>

我想通了!我所要做的就是更改我的 .ejs 模板:

<%=postBody%>

<%-postBody%>