【发布时间】:2015-12-02 04:56:13
【问题描述】:
我有一个模型用 SORT/PAGE/PER PAGE 调用产品 它可以很好地使用数值作为参数而不是字符串。 这工作正常...
params.limit = 12
client.query('SELECT * FROM products LIMIT $1', [params.limit], function(err, result)
然而这并不...
params.sort = 'product_id'
params.direction = 'DESC'
client.query('SELECT * FROM products ORDER BY $1 $2', [params.sort, params.direction], function(err, result)`
我认为这是因为它将单词 DESC 包装为 'DESC' 但我不知道如何在不将其直接注入字符串的情况下实现这一点。
同样LIMIT 传递一个整数总是有效,但传递ALL 不是出于同样的原因。
任何帮助都会非常有用!
【问题讨论】:
-
你不能这样做,node-postgres 在查询格式方面非常有限。但是,pg-promise 具有更好的查询格式。在您的示例中,这是一个典型的 raw query parameter injection
-
谢谢,我一定会看看这个!
标签: node.js postgresql pg