UnhandledPromiseRejectionWarning при удалении документа в мангусте - PullRequest
1 голос
/ 28 мая 2020

Я создаю сайт для чата. Это мой пример кода.

const result = await Room.findOne({
    name: roomName
});
if (result) {
    result.users.forEach((element, index) => {
        if (element === userName) {
            result.users.splice(index, 1);
            result.save();
            return;
        }
    });
    if (!result.users.length) {
        Room.findOneAndDelete({
            name: result.name
        }, function(err) {
            if (err)
                console.log(err);
        });
    }
}

Этот код предназначен для случаев, когда пользователь выходит из комнаты, удаляет имя пользователя в комнате и, если в его комнате нет пользователя, удаляет комнату.

В настоящее время мой код удаляется хорошо ... Но я всегда получаю это предупреждение.

UnhandledPromiseRejectionWarning: VersionError: не найден соответствующий документ для идентификатора "5ecf2ade55c7db23747300e8" версия 0 modifiedPaths "users"

Сначала я подумал, что функция findOneAndDelete вызывается дважды, но после проверки через консоль, похоже, это не так. Я сделал это, используя Express и Mongoose.

1 Ответ

0 голосов
/ 28 мая 2020

Согласно документации mon goose, вы должны вызвать метод exe c () при использовании async / await.

await MyModel.findOne({}).exec()

Проверьте эту ссылку: https://mongoosejs.com/docs/promises.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...