Tengo una función asíncrona que intenta devolver un recuento de filas en una tabla "publicaciones"
async getPostCount() { return db('posts').count('id'); }Esto se usa en una 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}` }); } } )Sin embargo, me sale un error y no he podido encontrar nada en Internet al respecto.
Something went wrong. error: select * from "posts" where "id" = $1 limit $2 - invalid input syntax for type integer: "count"¿Qué podría estar pasando?
Los resultados de los generadores de consultas knex.js son matrices. Una consulta podría tener éxito y simplemente arrojar 0 resultados.
Además, puede intentar usar un alias para la columna directamente en el nombre de la columna (o en la llamada count()). Algo como esto:
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 }) })