I'm building a microservice api using koa. This API is only used for user data. I'm pulling data from a postgresql database, no problems there. But when i try to expose the data, i get a "Not Found".
Here's the endpoint snippet, i can't find anything wrong with it, i might be blind...
router.get('/api/v1/users', (ctx) => {
pool.connect((err, client, done) => {
if (err) {
ctx.response.body = { status: 500, message: 'Something went wrong' }
console.log('Pool Connection Error: ', err)
throw err
}
client.query('select * from users', (err, result) => {
done()
if (err) {
ctx.response.body = { status: 500, message: 'Something went wrong' }
console.log('Query Error: ', err)
throw err
}
ctx.response.body = { status: 200, data: result.rows }
console.log('Query Result:', result.rows)
})
})
})
I did an oopsie.. I should've just used a promise like this...
router.get('/api/v1/users', async ctx => {
async function getData() {
return new Promise((resolve, reject) => {
pool.connect((err, client, done) => {
if (err) {
reject({ status: 500, message: 'Something went wrong' })
console.log('Pool Connection Error: ', err)
throw err
}
client.query('select * from users', (err, result) => {
done()
if (err) {
reject({ status: 500, message: 'Something went wrong' })
console.log('Query Error: ', err)
throw err
}
resolve({ status: 200, data: result.rows })
console.log('Query Result:', result.rows)
})
})
})
}
ctx.response.body = await getData()
})
Well, at least i hope this can help other newbies like myself