О принятии решения, использовать ли asyn c или syn c в Mon goose middleware - PullRequest
0 голосов
/ 09 февраля 2020

Я хочу исключить пользователей, которые не активны, и поэтому я объявил промежуточное ПО для предварительного поиска. Если я сделаю функцию 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()
}) 
...