我有nodejs与postgres数据库,我可以通过API运行查询。
如果我能用localhost:3000/data/ID# curl ,我就能得到数据。下面的代码正在工作。
const getDataById = (request, response) => {
const id = parseInt(request.params.id)
pool.query('SELECT * FROM data WHERE id = $1', [id], (error, results) => {
if (error) {
throw error
}
response.status(200).json(results.rows)
})
}
下面是一个ID为#的curl的示例,它可以按预期工作。
$ curl localhost:3000/data/2
{"id":2,"city":"dallas","data":{"user":"tim","position":"clerk"}}
我需要做同样的事情,但使用城市名称作为参数。
我需要能够做同样的事情,但使查询与列值以外的ID#。例如在数据库中我可以运行
data=> SELECT * FROM data WHERE city = 'dallas';
我的结果是一样的{"id":2,"city":"dallas","data":{"user":"tim","position":"clerk"}}
我已经尝试使用下面的,但我来了空的结果:
const getDataCity = (request, response) => {
const city = (request.params.city)
pool.query('SELECT * FROM data WHERE city = $1',[city], (error, results) => {
if (error) {
throw error
}
response.status(200).json(results.rows)
})
}
$ curl localhost:3000/data/dallas
$
任何帮助或指导我如何可以或应该格式化查询是非常感谢。
干杯
1条答案
按热度按时间fkaflof61#
所以修复,实际上是一个错字。问题是PEBCAK。密码在这里是正确的。但在我的申请中;还有别的。APP里是这样的。
response.status(200).json(results.row)
所以我把它改成了
(results.rows)
,就像它应该的那样,神奇地事情工作了,现在:)我也确实停止了抛出错误并记录了它;因为这是很好的练习,谢谢@Bergi的呼吁。
实际的解决方法是确保您检查所有代码并捕获内容。