Back end (nodejs)
async getAllEvents(req, res, database, collection) {
try {
const { filter, sort } = req.query;
const events = await mongo
.getClient()
.db(database)
.collection(collection)
.find(filter)
.sort(sort)
.toArray();
res.json(events);
res.end();
} catch (error) {
return res.status(400).json({ message: "err_get_events" });
}
}
Front end (react)
const getAllEvents = async () => {
const query = settings.query;
await axios
.get(Constants.BASE_URL + '/' + settings.urlprefix + '/get', { params: { filter: { helped: true }, sort: { dateAdded: -1 } } })
.then((res) => {
setEvents(res.data);
})
.catch((err) => console.log(err?.response?.data?.message));
};
on backend i got from console.log: { filter: { helped: 'true' }, sort: { dateAdded: '-1' } }
and helped
and sort
become string
When i pass { helped: 'true' }
to mongo .find() not give any results, because in mongo i store boolean.
How can i got correct types of variables on the back end side after query parsing?