I am building an api with express and mongoose and im usingdb.collection(collection).find({})
expecting that i get all of my docs back (3 test docs in total) as seen from tutorials. It doesnt give me any errors when im executing a req from postman and that confuses me as im geting nothing, not even an empty object or array as a response. I have tried different examples, from different tutorials but nothing works. Is the syntax wrong?
import express from 'express' import './connection.js' const router = express.Router const db = mongoose.connection; const dtb = db.useDb('main').collection('products') router.get('/true', async(req, res) => { try { const products = await dtb.find({}) res.send(products).status(200) } catch (err) { console.log(err) res.sendStatus(500) } })
Advertisement
Answer
So, after lookig again and again at my code I realized that the route /true
was taken as a param by express as i have another route for app.get('/:_id', getItem)
.
After changing the route to /all/true
parsing the docs into an array and after some debugging, my getAll function looks like this and finally works :
export const getAll = app.get('/all/true', async(req, res) => { const products = await dtb.find({}).toArray().catch(console.error()) res.send(products) })