2014-12-10 2 views
2

Мой сервер возвращает пустой объект, если он получает до последнего состояния, где код является 204:Non пустой объект не возвращается - Node.js

exports.get_group_profile = function(req, res) { 
Work.findById(req.params.work_id, function(err, work) { 
    if (err || !work) 
     return res.send(404); 
    if (work.admin.id === req.user._id){ 
     console.log('here'); 
     return res.json(200, work.profile); 
    } 
    if (work.users.indexOf(req.user._id)> -1) 
     return res.json(201, work.profile); 
    if (work.invited.indexOf(req.user._id) > -1) 
     return res.json(202, work.profile); 
    for (var i=0;i<work.appliers.length;i++) { 
     if (work.appliers[i].id == req.user._id) 
      return res.json(203, work.profile); 
    } 
    if (work.visibility!=0){ 
     console.log(work.profile); 
     return res.json(204, work.profile); 
    } 
    return res.send(404); 
}); 

};

Любое условие, но это возвращает файл work.profile (который является виртуальным в mongoDB) должным образом. Журнал перед возвратом распечатывает объект, который мне нужен, но у меня нет следов на моей стороне клиента. Есть идеи ?

ответ

3

С этого сайта: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5

204 Ответ НЕ ДОЛЖЕН содержать тела сообщения, и, таким образом, всегда завершается первой пустой строкой после полей заголовка.

Именно поэтому вы не видите ничего на стороне клиента.

+0

Вы заставили меня понять, что ответы были более значимыми, чем просто способ поговорить с моей клиентской стороной! Вы знаете, что обрабатывает это поведение в Express? И спасибо за ссылку! – Thook

+0

Я бы предположил, что, поскольку он написан в некоторых RFC, Express должен игнорировать второй аргумент. – GeoffreyB

+0

Я проверю это, спасибо – Thook

Смежные вопросы