Вы знаете почему, потому что условие, которое нужно передать Model.find()
, должно быть object
:
Model.find ()
Параметры
- условия «Объект»
- [проекция] «Объект | Строка» необязательные поля для возврата, см. Query.prototype.select ()
- [опции] «Объект» необязательно, см. Query.prototype.setOptions ()
- [обратный вызов] «Функция»
Возвращает
Поиск документов
Например:
// named john and at least 18
MyModel.find({ name: 'john', age: { $gte: 18 }});
// executes immediately, passing results to callback
MyModel.find({ name: 'john', age: { $gte: 18 }}, function (err, docs) {});
В ваших кодах вы передаетеstring
к этому методу вместо object
.
Затем попробуйте это:
router.get('/allorders', jwtAuth, function(req,res,next) {
const userID = req.user.username;
const conditionsObject = {orderedByUser: userID}; // fixed
//Order.find() works
Order.find(conditionsObject) // fixed
.then(orders =>{
res.json(orders).end();
}).catch( err=> {
res.status(500).json({error: 'Something went wrong!'});
});
});
Дополнительную информацию о методе Model.find()
вы можете прочитать здесь: https://mongoosejs.com/docs/api.html#model_Model.find
Надеюсь, это поможет.