ExpressJS响应中间件

时间:2017-11-26 19:14:04

标签: javascript node.js express

我为前端创建了一个HttpInterceptor,它为每个请求发送一些默认头,并为每个请求自动加密body / url,为后端检查头文件中间件并解密数据包需要..现在我的响应中间件有问题,因为我只想为某些请求发送带有加密主体的响应。

app.use((req,res,next)=>{

    if(req.headers['x-data-encoded'] && (req.headers['x-server'] == "HP")){

        res.append('X-Encoded-Data', true);

        var nsp = res.send;

        res.send = function(data){
            var body = Crypto.encodeData(data); // Result a string of letters and numbers
            nsp.apply(this, body);
        }

    }

    next();
});

捕获异常:TypeError:在非对象上调用CreateListFromArrayLike

1 个答案:

答案 0 :(得分:1)

我认为出现错误是因为send方法等待一个对象并且它正在接收一个String。如果您手动指定一个对象,则此错误应消失或更改为另一个。

此外,apply的第二个参数应该是一个数组。

希望有所帮助