【问题标题】:express 4.x json empty objectexpress 4.x json空对象
【发布时间】:2018-06-17 19:00:20
【问题描述】:

我正在尝试使用 express 将对象作为 json 返回。但这是我不明白的:

class Greeting {
  Greeting(name) {
    this.name = name;
  }
  get name() {
    return name;
  }
}

app.get('/json/:name', function (req, res) {
  greeting = new Greeting(req.params.name)
  greeting.something = req.params.name
  res.json(greeting)
})

http://localhost:3001/json/someparam

返回:

{
"something": "someparam"
}

为什么它也不返回通过构造函数设置的名称?

【问题讨论】:

  • 你确定这行得通吗?
  • 你的意思是如果我得到我发布的输出?是的,我确定。

标签: javascript json express


【解决方案1】:
get name() { return name; }

name 没有在这里定义所以访问

greeting.name

会抛出语法错误。即使你会解决这个问题,getter 也不是对象的一部分,也不会被序列化,因此它的行为符合预期。如果您要完全删除这个不必要的吸气剂,它将按您认为的那样工作。我错过的另一个明显的事情是javascript中的构造函数被称为constructor

【讨论】:

  • 我删除了get name() { return name; },但仍然得到相同的结果。我希望它会返回{ "something": "someparam", "name": "someparam"}
  • @alex f oh rename Greeting(name) to constructor(name),我上次在java中写了很多代码,所以我完全错过了
  • 谢谢,有帮助。我也是一名 Java 开发人员,这就是我错过它的原因。
猜你喜欢
  • 2019-01-28
  • 2017-02-02
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2019-02-27
相关资源
最近更新 更多