app.get("/blogs", function(req, res){
Blog.find({}, function(err, blogs){
if(err){
console.log("error!!!");
}else{
res.render("index", `{blogs: blogs}`);
}
});
这是我来自网络开发训练营的代码,来自 colt steele
如果它实际上如您所展示的那样,它只是文字文本
{blogs: blogs}
。它在一个未标记的模板文字中(因此创建了一个字符串),并且它不在该文字中的标记中,所以它只是文本:
console.log(`{blogs: blogs}`); // "{blogs: blogs}"
但是,如果是:
res.render("index", {blogs: blogs});
(没有反引号),那么它将是一个对象初始值设定项(通常称为“对象字面量”),它创建一个对象,该对象具有自己的单个属性,称为
blogs
,其值来自 blogs
变量:
const blogs = "value of blogs";
const obj = {blogs: blogs};
console.log(obj.blogs); // "value of blogs"
该初始化程序将创建对象并将其作为第二个参数传递给
render
。
在现代环境(ES2015+)中,您可以使用速记属性符号来编写它:
{blogs}
.
res.render("索引",
{blogs: blogs}
);
这一行将呈现视图模板。这里 first blogs 指的是属性的名称,它将在模板中使用,而 second blogs 指的是我们从服务器获得的响应。