不返回非空对象 - Node.js

时间:2014-12-10 10:40:07

标签: node.js

我的服务器返回一个空对象,如果它到达最后一个条件,代码是204:

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中的虚拟)。返回之前的日志打印出我需要的对象,但我的客户端没有它的痕迹。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

从这个网站:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5

  

204响应绝不能包含消息体,因此总是在头字段后面的第一个空行终止。

这就是为什么你在客户端没有看到任何东西。