Я изучаю ноды и экспрессы, и я наткнулся на этот фрагмент кода здесь :
/* GET userlist. */
router.get('/userlist', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
collection.find({},{},function(e,docs){
res.json(docs);
});
});
Разбирая его и читая статью, я думаю, что я понимаю, что он делает:
- Поиск входящих запросов на страницу
/userlist
на сервере
- Добавить переменную
db
к HTTP-запросу (db
предварительно заполнено где-то еще в приложении)
- Поиск всех записей во всех документах в коллекции
userlist
, которую я предварительно создал с помощью клиента MongoDB
- Возвращать JSON-ответ с результатом запроса MongoDB
Анонимная функция function(e,docs)
это то, что сбивает меня с толку. У него есть два параметра: e
, который является обработчиком событий и распространен в ситуациях такого типа, и docs
. Я знаю, запустив код, который docs
содержит результат запроса MongoDB, но как он заполняется? Точнее - кто отвечает за его заполнение - это Монах как часть обратного вызова для метода collection.find()
?
Примечание: JS - не мой родной язык, поэтому, если это просто JS, я был бы рад получить ясное объяснение и по этому поводу.