Node.js node/express从mongodb检索html模板

Node.js node/express从mongodb检索html模板,node.js,mongodb,templates,express,routing,Node.js,Mongodb,Templates,Express,Routing,嗨,我是node的新手,我正在尝试制作一个简单的博客 我想要route/pages/:post来搜索数据库中的post,并返回一个html模板文件,我可以将其用作部分内容 var posts = { 'myarticle': { template: partial1.html } }; var findPost = function (post, callback) { if (!posts[post]) return callback(new Error(

嗨,我是node的新手,我正在尝试制作一个简单的博客

我想要route/pages/:post来搜索数据库中的post,并返回一个html模板文件,我可以将其用作部分内容

var posts = {
  'myarticle': {
    template: partial1.html
  }
};

var findPost = function (post, callback) {

  if (!posts[post])
    return callback(new Error(
      'No post matching '
       + post
      )
    );
  return callback(null, posts[post]);
};

app.get('/pages/:post', function(request, response) {
  var post = request.params.post;
  findPost(post, function(error, post) {
    if (error) return;
    return response.render('posttemplate', post);
  });
});
posttemplate是一个类似ejs的模板文件,到目前为止我对Jade还不太满意

<html>
    <% include ../partials/header %>
<body>
    <% include /thereturnedpost %>
</body>
</html>

这可能吗?我已经浏览了文档/教程,但没有一个是清晰的。

我将用当前项目中的代码示例来回答

  <body>
    <%- body %>
    <script type="text/javascript" src="/vendors.js"></script>
    <script type="text/javascript" src="/main.js"></script>
  </body>
所以你的例子几乎是正确的。从数据库中获取数据后,将其发送到渲染函数(在我的例子中是“渲染内容”)。 它适用于保留db html字符串的情况


此外,我可以建议您使用降价,例如博客帖子。编写和编辑格式良好的内容可能会更简单,与html比较所需的信息可能会更少。

根据您的编码,您的博客文章内容是静态的,并且是在模板htmls中

如果您从db获取数据,那么应该修改代码,使模板文件包含HTML标记/ejs变量,并单独发送数据值

这可以通过ejs.renderFile方法完成

希望它能帮助你

res.render('index', {
                body: content
            });