我们怎样才能让pg-promise从查询返回行数组,而不是行对象数组?
答案 0 :(得分:3)
pg-promise版本4.0.5开始支持Prepared Statements
和Parameterized Queries
的高级参数,与node-postgres中的高级参数完全相同。一个这样的参数 - rowMode可以设置为array
,以使驱动程序将行作为数组返回。
// Prepared Statement:
db.query({
name: 'my-prep-statement',
text: 'select ...', // a query or a QueryFile object (see PreparedStatement)
values: [],
rowMode: 'array'
}).then(data=>{}).catch(reason=>{});
// Parameterized Query:
db.query({
text: 'select ...', // a query or a QueryFile object (see ParameterizedQuery)
values: [],
rowMode: 'array'
}).then(data=>{}).catch(reason=>{});
另请参阅包装它们的类型:PreparedStatement和ParameterizedQuery。
下面的代码与上面的代码相同,但提供了更好的性能+可重用性+分别设置值的灵活性。
var ps = new pgp.PreparedStatement({
name: 'my-prep-statement',
text: 'select ...', // a query or a QueryFile object (see PreparedStatement)
values: [], // alternatively, can be set when calling a query method
rowMode: 'array'
});
db.query(ps).then(data=>{}).catch(reason=>{});
var pq = new pgp.ParameterizedQuery({
text: 'select ...', // a query or a QueryFile object (see ParameterizedQuery)
values: [], // alternatively, can be set when calling a query method
rowMode: 'array'
});
db.query(pq).then(data=>{}).catch(reason=>{});