我有一个非常大的JSON请求,这导致413错误。我正在探索解决此问题的替代方法(不增加请求大小),并发现可以选择流式传输。但是,我找不到流JSON请求的任何示例。我怎样才能做到这一点?下面是我的代码
this.server.route({
method: 'POST',
path: '/vov',
config: {
payload: {
output: 'stream',
allow: ['application/json','multipart/form-data']
},
handler: (request, reply) => {
// request.setEncoding('utf8');
let payload = request.payload;
this.onMessage(payload);
// payload.on('data', (chunk) =>{
// console.log(chunk);
// // this.onMessage(payload);
// // setTimeout(() => {return reply.continue()},30000);
// });
// payload.on('end', (chunk) =>{
// console.log(chunk);
// this.onMessage(payload);
// setTimeout(() => {return reply.continue()},30000);
// });
// return reply.continue();
}
}
});
答案 0 :(得分:1)
您可以向有效负载提供false
:
payload: {
output: 'stream',
parse: false
}
这将返回未经修改的流。 然后,您可以使用JSONStream模块来处理大流文件。
const payload = request.payload;
payload.pipe(JSONStream.parse(options))
.on('data', (data) => {
// handle your logic
})