影响当前请求的先前请求的响应标头

时间:2013-10-29 10:40:01

标签: node.js express

以下代码是我们正在构建的新节点应用程序的面向用户的部分:

var loadInvoice = function(req, res, next) {
    Invoice.findById(req.params.invoiceId, function (err, invoice) {
        if (err) {
            res.send(404, 'Page not found');
        } else {    
            req.invoice = invoice;
            next();
        }
    });
};

app.namespace('/invoices/:invoiceId', loadInvoice, function () {

    app.get('', function(req, res){
        var templateVals = {
            //some template data
        };
        res.render('paymentselection', templateVals);
    });

    app.post('', function(req, res){
        var data = {
            // some data for the apiCall
        };

        someAPI.someRequest(data, function(err, data) {
            console.log(res.status());
            res.redirect(data.url);
        });
    });

});

第一种方法返回一个确认页面,用户按下按钮发布到同一个网址,这会触发重定向到外部网站。

这一切都适用一次。每个第二个请求都会在应用程序发送后使用消息Cant set headers使应用程序崩溃。仔细检查代码后,我发现没有理由发生这种情况,所以我添加了console.log行确实确认了位置标题已设置。但它设置为我从上一个请求中的某个API 获得的值而不是当前请求。

这对我来说毫无意义。我不会将此值存储在任何地方,也不会以任何方式对此数据进行缓存或持久化。

有人知道造成这种情况的原因吗?

我使用express,express-namespace,mogoose和swig

1 个答案:

答案 0 :(得分:0)

我发现问题是由'某些APP'中使用的'摔跤手'库引起的。我不知道这是怎么可能的,但是用其他东西来解决这个问题。

相关问题