从 Knex 获取行数
Getting count of rows from Knex
我有一个异步函数正在尝试 return table“帖子”
中的行数
async getPostCount() {
return db('posts').count('id');
}
这用于 API...
router.get(
'/count',
async (req, res, next) => {
try {
await PostsService.getPostCount()
.then(result => {
res.json({
count: result,
token: req.query.secret_token
})
})
.catch((err) => {
throw(err);
});
}
catch (err) {
console.log(err);
res
.status(500)
.json({ success: false, msg: `Something went wrong. ${err}` });
}
}
)
但是,我遇到了一个错误,并且无法在互联网上找到任何相关信息。
Something went wrong. error: select * from "posts" where "id" = limit - invalid input syntax for type integer: "count"
可能发生了什么?
knex.js 查询生成器的结果是数组。
查询可能会成功并且只是 return 0 个结果。
此外,您可以尝试直接在列名(或 count() 调用)中使用列的别名。像这样的东西:
async getPostCount() {
return db('posts').count('id as CNT').first()
}
.....
await PostsService.getPostCount()
.then(result => {
res.json({
count: result.CNT,
token: req.query.secret_token
})
})
我有一个异步函数正在尝试 return table“帖子”
中的行数async getPostCount() {
return db('posts').count('id');
}
这用于 API...
router.get(
'/count',
async (req, res, next) => {
try {
await PostsService.getPostCount()
.then(result => {
res.json({
count: result,
token: req.query.secret_token
})
})
.catch((err) => {
throw(err);
});
}
catch (err) {
console.log(err);
res
.status(500)
.json({ success: false, msg: `Something went wrong. ${err}` });
}
}
)
但是,我遇到了一个错误,并且无法在互联网上找到任何相关信息。
Something went wrong. error: select * from "posts" where "id" = limit - invalid input syntax for type integer: "count"
可能发生了什么?
knex.js 查询生成器的结果是数组。 查询可能会成功并且只是 return 0 个结果。
此外,您可以尝试直接在列名(或 count() 调用)中使用列的别名。像这样的东西:
async getPostCount() {
return db('posts').count('id as CNT').first()
}
.....
await PostsService.getPostCount()
.then(result => {
res.json({
count: result.CNT,
token: req.query.secret_token
})
})