在我限制postgres的回报之前,我试图获得完整的行数,我使用过:
count(*) OVER() AS full_count
然而,当我把它放在选择中时,它输出的每一行都不太理想。我将NodeJS
中的JSON
作为rowCount
输出,并注意到输出中包含了rowCount
的自带,但这是在限制之后,是否有办法用JSON
替换full_count
中的SELECT name, id, count(*) OVER() AS full_count FROM table ORDER BY id ASC LIMIT ($1) OFFSET ($2)
,或者尝试做我正在做的事情的更好方法?这是我到目前为止的询问:
{
total : 170000
rows : [
{
name : Karl,
age : 31,
},
name : Helen,
age : 36
}
]
}
更新
预期产出:
router.get('/api/v1/person/:limit?/:offset?', (req, res, next) => {
person.get(req, res);
});
更新2
NodeJS
路线
this.get = function(req, res) {
var limit = req.params.person_limit || 10;
var offset = req.params.person_offset || 0;
if (limit > 100) {
limit = 100;
}
pool.connect(function(err, client, done) {
if(err) {
done();
console.log(err);
return res.status(500).json({success: false, data: err});
}
client.query('SELECT name, id FROM person ORDER BY id ASC LIMIT ($1) OFFSET ($2)',[limit, offset], function(err, result) {
done();
if(err) {
return console.error('error running query', err);
}
res.send(result);
});
});
};
模型
UseShellExecute