我想知道 {blogs: blogs} 在我的代码中是什么意思

问题描述 投票:0回答:3
   app.get("/blogs", function(req, res){
   Blog.find({}, function(err, blogs){
       if(err){
           console.log("error!!!");
       }else{
           res.render("index", `{blogs: blogs}`);
       }
   });

这是我来自网络开发训练营的代码,来自 colt steele

javascript node.js mongodb express ejs
3个回答
2
投票

如果它实际上如您所展示的那样,它只是文字文本

{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}
.


1
投票

res.render("索引",

{blogs: blogs}
);

这一行将呈现视图模板。这里 first blogs 指的是属性的名称,它将在模板中使用,而 second blogs 指的是我们从服务器获得的响应。


0
投票

这是一个简单的JavaScript键的图形表达。(为了让你的概念更清晰。)

res.render("index", `{blogs: blogs}`);

您正在使用 EJS,并且上述代码行有助于 'view engine' 或简单地 EJS 动态呈现或弹出键值“博客”到您的 index.ejs(其中你在你的index.ejs<%=blogs%>)中使用了

希望能帮到你解开疑惑。 谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.