Странное поведение с узлом / монго / функциями / ограничением - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть этот маршрут express.js

app.get("/explore/:category?", checkCategory, function(req, res){   
     var params = new Array();
     params["path"] = req.route.path;

     Category.findOne({hash:category}, function (err, doc) {
         params["category"] = doc;
     });

     console.log(params);

когда вы находитесь внутри findOne, значения doc и params ["category"] просто в порядке. Однако за пределами этой области он исчезает, а params ["category"] становится "undefined". Теперь, после однократного обновления страницы, она возвращается к нормальному поведению и, кажется, остается такой же на протяжении всей работы узла.

Почему происходит такое поведение?

1 Ответ

2 голосов
/ 06 февраля 2012

Это происходит потому, что console.log вызывается до обратного вызова, который вы передаете findOne. Он работает как положено, если вы измените его так:

Category.findOne({hash:category}, function (err, doc) {
    params["category"] = doc;
    console.log(params);
});

Также см. Ответы на похожие вопросы, например this .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...