Как использовать события в Mongoose?

Пользователь

от rodger.botsford , в категории: JavaScript , год назад

Как использовать события в Mongoose?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от leila.dickinson , год назад

@rodger.botsford 

Mongoose предоставляет возможность использовать события, которые могут помочь вам реализовать определенную логику при работе с базой данных MongoDB. Вот несколько примеров того, как использовать события в Mongoose:

  1. Перехват ошибок при сохранении документа:
1
2
3
4
5
6
7
8
const schema = new mongoose.Schema({ name: String });
schema.post('save', function(error, doc, next) {
  if (error.name === 'MongoError' && error.code === 11000) {
    next(new Error('There was a duplicate key error'));
  } else {
    next(error);
  }
});


  1. Обновление связанных документов при удалении документа:
1
2
3
4
5
6
7
8
const schema = new mongoose.Schema({
  name: String,
  author: { type: mongoose.Schema.Types.ObjectId, ref: 'Author' }
});

schema.post('remove', function(doc, next) {
  this.model('Author').update({ _id: doc.author }, { $pull: { books: doc._id }}, next);
});


  1. Выполнение дополнительной проверки перед сохранением документа:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const schema = new mongoose.Schema({
  name: String,
  age: Number
});

schema.pre('save', function(next) {
  if (this.age < 18) {
    next(new Error('You must be at least 18 years old to create an account'));
  } else {
    next();
  }
});


Это только несколько примеров того, как можно использовать события в Mongoose. Список событий, которые можно использовать, можно найти в официальной документации Mongoose.