gleber1
@gleber1

Почему пост запрос на эту функцию отрабатывает 50 на 50?

app.post('/login', UserController.handlers.login);
login: function(req, res){
        var mail = req.body.mail;
        var password  = req.body.password;
        async.waterfall([
            function(callback){
                User.findOne({mail : mail}, callback );
            },
            function(user, callback){
                if (user){
                        if (user.checkPassword(password)){
                            req.session.user = user._id;
                            result= {"login":"yes"};
                        }
                        else{
                            result= {"login":"no"}
                        }
                    }
                else{
                        result = {"User": "notFound"};
                    }
                callback(null, result);
            }
        ], function (err, result) {
            res.json(result);
        });

Тестирую в разных там сервисах ПОСТ РЕКВЕСТ ОНЛАЙН и в половине отрабатывает в половине нет, что то кажись с хедерами или чем ,как сделать универсально чтобы работало?
  • Вопрос задан
  • 2247 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Скорее всего это от того, что User.findOne({mail : mail}, callback); возвращает в callback ошибку и waterfall не идет дальше, т.е. вторая функция не выполняется, а сразу вызывается финальная. Не совсем понятно, что значит "не отрабатывает", что именно происходт? Зависает и отваливается по таймауту? Что видно из браузера (фаербага, девелопертулза)? Какой http code возвращает или просто рвет соединение? Я советую формировать result уже в финальной функции, а в массиве функций waterfall только готовить данные для этого.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы