Привет, я задавался вопрос, можете ли вы помочь мне построить метод цепь динамически, я подозреваю, что это легко сделать, если вы знаете, как ...Javascript метода цепочка, добавить методы из массива
Использование мангуста и Node.js I 'm запрашивает базу данных mongo. Я использую функцию, я передать объект, который выглядит следующим образом:
transaction = {
model: a mongoose model
req: Express.js request object
res: Express.js response object
query: a mongo db query eg, {_id:xxxxx}
populate: [ {
field: 'name_of_doc_field'
select: 'field1,field2'
} ]
}
Я построение запроса динамически, и в функции я не знаю, сколько полей мне нужно заполнить, или требуется ли смещение или лимит.
Я хочу цепь моей находки:
transaction.model.find(transaction.query).skip(offset).limit(limit).exec(function(err, collection_obj){...})
Как я построить эту цепь динамически, мне нужно, чтобы проверить смещение ли подавались в тестируемом объекте, если он был добавить Пропусти метод цепочка и т. д., а также с помощью метода заполнения, будет массив элементов, каждый элемент в этом массиве будет нуждаться в новом методе заполнения, добавляющем в цепочку.
Наконец, мне понадобится метод exec до конца цепочки.
Спасибо за помощь заранее
// Generated by CoffeeScript 1.4.0
module.exports = {
findMany: function(transaction) {
var collection_obj, limit, offset;
offset = parseInt(transaction.req.query.offset) || 0;
limit = parseInt(transaction.req.query.limit) || 100;
collection_obj = null;
return transaction.model.find(transaction.query).skip(offset).limit(limit).exec(function(err, collection_obj) {
return found(err, collection_obj, transaction.req, transaction.res);
});
},
}
Вашего API кажется довольно нечетким мне , Вы говорите, что 'transaction.model' является моделью мангуста. У этого уже есть функция 'find', которую вы ищете? Если нет, ожидаете ли вы расширить API-интерфейс mongoose? –
Вы хотите, чтобы методы 'skip',' limit' и 'exec' действовали на' transaction' или на 'model'? – Bergi
Причина, по которой я отделил эту функцию, заключается в том, что я буду повторять эту функцию на многих моделях. Я хочу найти записи в данной модели, которая предоставляется объектом транзакции. Я что-то не понимаю? Он работает так, как он в настоящее время стоит, но не обрабатывает отсутствующие свойства, такие как недостающий «предел» и не запускает метод .populate, потому что я не мог понять, как динамически добавлять изменения для каждого элемента в массив. –