Я хочу исключить пользователей, которые не активны, и поэтому я объявил промежуточное ПО для предварительного поиска. Если я сделаю функцию async / await в промежуточном программном обеспечении, то код не работает. Когда я нажимал на пост-запрос, он продолжал загружаться в течение примерно 50 секунд, и появлялись сообщения об ошибках. Сообщения были о чем-то вроде Неэффективных компакт-дисков с отметками около предела кучи. Выделение не удалось - JavaScript кучи из памяти и так далее. Кто-нибудь может объяснить, почему? Я думал, что понял концепцию asyn c и syn c, но теперь я сомневаюсь в себе ... Большое спасибо заранее!
Следующее работает нормально.
userSchema.pre('find', function (next) {
this.find({
active: {
$ne: false
}
});
next()
})
//In the controller file
exports.getAllUsers = async function (req, res, next) {
const users = await User.find();
res.status(200).json({
status: 'success',
results: users.length,
data: {
users
}
});
}
После добавления async / await следующее не работает нормально.
userSchema.pre('find', async function (next) {
await this.find({
active: {
$ne: false
}
});
next()
})