在另一个API中调用一个API会返回错误[ERR_HTTP_HEADERS_SENT]:

时间:2019-09-25 17:38:21

标签: node.js api express

我正在设置一些API,我需要从一个API调用另一个已配置的API。 这是我必须打电话给的那个:

exports.createNews = function (req, res, next) {
var notification = new Notification(req.body);

notification.save(function (err, notification) {
    if (err)
        return res.send(new Error(500, "There was a problem creating the notifications", err));

    res.send({
        success: true,
        data: {
            notification: notification
        }
    });
});

};

这是调用另一个的API:

feedback.save(function (err, feedback) {
                if (err)
                    return res.status(400).send(new Error(400, "Validation failed. Invalid attributes", err));

                var notification = new Notification()

                createNews(req,res,function () {
                    return res.status(200).send({
                        success: true,
                        data: {
                            feedback: feedback
                        }
                    });
                })
            })

我收到此错误: 错误[ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头

问题是我还必须单独打第一个电话。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您在res.send中两次调用createNews,在feedback.save中一次调用。 错误Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client通常意味着您已经发送了一次响应,并且由于明显的原因,您无法再次发送响应。 因此,您需要做的是仅发送来自createNewsfeedback.save之一功能的响应。
希望能回答您的问题。