Node.js node/express从mongodb检索html模板
嗨,我是node的新手,我正在尝试制作一个简单的博客 我想要route/pages/:post来搜索数据库中的post,并返回一个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(
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
});