【问题标题】:How to change the output format of a node-Postgressql query如何更改 node-Postgresql 查询的输出格式
【发布时间】:2019-10-30 22:50:50
【问题描述】:

我正在编写一个使用 node.js 查询 Postgresql 数据库的程序。我有正确的查询来自数据库。我只是对输出格式有疑问。我需要将结果发送到另一个函数。

我正在使用 Postgresql 和 nodejs 查询数据库,结果显示为 { model: 'Antonov An-148 (241 nmi)' }。我希望Antonov An-148 (241 nmi) 成为结果并发送到setValue 函数。

我是否应该以不同的方式查询数据库,因为我有其他查询要发送到其他函数进行计算?

client.connect()
    .then(() => console.log("Connected successfuly"))
    .then(() => client.query("select model from \"aircraftModels\" where model = $1", ["Antonov An-148 (241 nmi)"]))
    .then (results => setValue(results.rows))
    .catch(e => console.log(e))
    .finally(() => client.end())

function setValue(value){
    console.log(value);
}

实际结果:{ model: 'Antonov An-148 (241 nmi)' }

预期结果:Antonov An-148 (241 nmi)

【问题讨论】:

  • 然后记录value.model而不是value
  • value.model 以未定义的形式返回
  • 然后需要将JSON解析成一个对象,然后访问value.model

标签: javascript node.js postgresql


【解决方案1】:

如果它以 json 字符串的形式返回,您将执行以下操作。

用 JSON.parse(value) 解析字符串,然后你就可以调用 .model 了。

const value = JSON.parse(value);
console.log(value.model)

但是,您似乎已经获得了一个有效的 javascript 对象,因此您应该能够调用 value.model

看来,您与您讨论的请求正在返回一个数组,这是因为您可能有不止一个。要读取数据库的第一个结果,您可以执行 value[0].model

【讨论】:

  • SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at setValue 出现错误
  • @jamo1909 抱歉,经过仔细检查,它似乎返回了一个已经有效的对象。注销 console.log(value, value.model) 时会发生什么。它不应该以未定义的形式返回,你确定你没有打错字吗?
  • [ { model: 'Antonov An-148 (241 nmi)' } ] undefined
  • 啊!好吧,你去吧,我的朋友,它是一个数组!如果你调用 value[0].model 你会得到你想要的。
  • 值得注意的是,它返回数组的原因是因为您可能从数据库表中返回了多个结果。我会相应地更新我的答案。 @jamo1909
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2019-08-19
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多