我为前端创建了一个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
答案 0 :(得分:1)
我认为出现错误是因为send方法等待一个对象并且它正在接收一个String。如果您手动指定一个对象,则此错误应消失或更改为另一个。
此外,apply的第二个参数应该是一个数组。
希望有所帮助