2015-09-19 3 views
0

Я пытаюсь вывести конкретные сообщения о конкретных ответах.Ошибка обработки специфических ошибок Mongodb

Вот мой код:

.post(function(req, res) { 
    var user = new User(req.body); 

    user.save(function(err) { 
    if(err) { 
     if(err.code == 11000) 
     res.status(409).json(customHTTPcodeReponses.exists(req.body.email)); 
    }; 

    User.findById(user._id, function(err, createdUser) { 
     res.status(201).json(customHTTPcodeReponses.created(createdUser)); 
    }); 
    }); 
}); 

Flow:

  1. Ваши данные. Я получаю 201.
  2. Повторная отправка таких же данных. Я получаю 409.
  3. Повторная отправка таких же данных. Я получаю «Не удалось получить никакого ответа (Почтальон)»

Консоль ошибка: _http_outgoing.js: 335 певд ошибки (. Может \ 'т установить заголовки после того, как они направляются'); [nodemon] приложение разбилось - ожидание изменений файла перед запуском ...

Что может быть причиной этого?

+0

"не работает" - разработать –

+0

Я думаю, что [этот вопрос] (http://stackoverflow.com/q/18169275/4519059) может помочь;). –

+0

Я изменил описание. Не могли бы вы еще раз взглянуть на него? –

ответ

1

Добавить код User.findById в выражении другого оператора.

user.save(function(err) { 
    if(err) { 
     if(err.code == 11000) 
     res.status(409).json(customHTTPcodeReponses.exists(req.body.email)); 
    }else{ 
     User.findById(user._id, function(err, createdUser) { 
      res.status(201).json(customHTTPcodeReponses.created(createdUser)); 
     }); 
    } 
    }); 

или добавить возврат к 1-й ответ:

if(err.code == 11000) 
    return res.status(409).json(customHTTPcodeReponses.exists(req.body.email)); 
Смежные вопросы