У меня в приложении очень простой пост findOneAndDelete
hook. Я использую этот хук для каскадного удаления всех документов, которые содержат идентификатор пользователя, когда этот пользователь закрывает свою учетную запись.
UserSchema.post('findOneAndDelete', async function({ _id }, next) {
try {
await Exercise.deleteMany({ user: _id });
await Tag.deleteMany({ user: _id });
await Template.deleteMany({ user: _id });
await Workout.deleteMany({ user: _id });
} catch (error) {
console.log(error);
}
});
Хук, кажется, работает именно так, как я хочу, но пометив хук как асинхронный c, я сталкиваюсь с приведенной ниже ошибкой в моей настройке ESLint. Не похоже, что почтовые хуки должны возвращать обещания.
Promise returned in function argument where a void return was expected.
Я прочитал в документации goose (https://mongoosejs.com/docs/middleware.html#post -asyn c), что вы может связывать асин c почтовые хуки, последовательно вызывая next()
внизу ваших функций. Но кажется, что это повторяется несколько раз, когда я могу выполнить sh в теле одной функции, помеченной как asyn c.
Мой вопрос: могу ли я игнорировать свой линтер? Или я неправильно использую этот хук, и я должен рефакторинг в соответствии с тем, что предлагает документация Mon goose?
Mon goose версия: 5.7.4