【问题标题】:I was wondering what the {blogs: blogs}, mean in my code我想知道 {blogs: blogs} 在我的代码中是什么意思
【发布时间】:2019-04-01 17:24:56
【问题描述】:
   app.get("/blogs", function(req, res){
   Blog.find({}, function(err, blogs){
       if(err){
           console.log("error!!!");
       }else{
           res.render("index", `{blogs: blogs}`);
       }
   });

这是我来自 web 开发训练营的代码,来自 colt Steele

【问题讨论】:

  • 带有一个自己的键的简单对象字面量:blogs。键是指该上下文中的blogs 变量。
  • 你的代码中有{blogs: blogs}周围的反引号真的吗?
  • @T.J.Crowder 我认为他用反引号包裹了 sn-p 只是为了强调。

标签: javascript node.js mongodb express ejs


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答
【解决方案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}

【讨论】:

    猜你喜欢
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    相关资源
    最近更新 更多