我从node-postgres
(调用client.query
方法时)收到的错误如下所示:
{ [Error: syntax error at or near "as"]
severity: 'ERROR',
code: '42601',
position: '60',
file: 'scan.l',
line: '1044',
routine: 'scanner_yyerror' } }
如果我能在错误消息旁边看到有问题的SQL,那么调试就会变得容易多了。有可能以某种方式得到它吗?
我意识到我可以手动实现它(包裹client.query
等),但我感兴趣的是node-postgres
本身是否可以强制提供SQL。
答案 0 :(得分:3)
查看源代码(https://github.com/brianc/node-postgres/blob/master/lib/client.js#L331),query
方法返回一个Query对象。所以你应该能够做到这样的事情:
var query = client.query('SELECT $1::int AS number', ['1'], function(err, result) {
if (err) {
var sql = query.text;
}
}
(假设你的回调函数与query
的范围相同)。
免责声明:我从未使用postgres或node-postgres。