Как цепные методы mongoose (шаблон Builder) работают под капотом

#javascript #node.js #mongoose #builder-pattern #mongoose-plugins

#javascript #node.js #mongoose #builder-pattern #mongoose-плагины

Вопрос:

Вопрос больше касается реализации цепных методов mongoose, чем собственно запросов mongo. Я работаю над реализацией плагина, для которой мне нужно предоставить пользовательские методы, такие как populate , count и т.д., показанные ниже.

 a.find({ b: 'thing' }).populate('d').exec(etc..)
 

Я использую статические методы mongoose для создания метода, специфичного для плагина, как показано ниже:

 Schema.statics.byName = function(name) {
  return this.find({ name: name });
};
 

Я смотрю в репозиторий модулей mongoose, это занимает больше времени, чем я думал, я хочу знать, как реализованы эти цепные методы. Если вызвать поиск и заполнить цепочку, как показано выше, как определить, какие методы связаны, и обрабатывать их,

В приведенном выше примере цепными методами являются find , populate , и exec . Если у кого-нибудь есть идея и он объяснит, как это работает, это будет действительно полезно.

Комментарии:

1. Ознакомьтесь с шаблоном Builder . Свободные интерфейсы обычно сводятся к этому.

2. @VLAZ Спасибо, я это проверю.