Node.js 如何在Hapijs中传输JSON请求?

Node.js 如何在Hapijs中传输JSON请求?,node.js,hapijs,Node.js,Hapijs,我有一个非常大的JSON请求,它导致了413错误。我正在探索解决这个问题的解决方法(除了增加请求大小),并发现流媒体是一种选择。但是,我找不到任何流式JSON请求的示例。我该怎么做?下面是我的代码 this.server.route({ method: 'POST', path: '/vov', config: { payload: { output:

我有一个非常大的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();
                }

            }

        });

您可以向有效负载提供
false

payload: {
    output: 'stream',
    parse: false
}
这将返回有效负载中未修改的流。 然后,您可以使用该模块来处理大数据流文件

const payload = request.payload;
payload.pipe(JSONStream.parse(options))
  .on('data', (data) => {
    // handle your logic
  })

你从哪里获得json?客户端发出HTTP请求你的意思是,你会收到一个大的json文件否,这是一个带有头application/jsonIt的大json请求,它似乎不适用于更大的json。您认为原因可能是什么?调试流可能非常棘手,一种有趣的方法是查看节点内部,使用NODE_DEBUG=stream NODE index.js运行应用程序,它将启动节点streams的调试模式i am get stream 27397:ondata stream 27397:read 0 stream 27397:need readable true stream 27397:length小于watermark true stream 27397:do read stream 27397:emitReadable true stream 27397:emit readable stream 27397:flow true流27397:读取未定义的流27397:合并流27397:完成流27397:取消管道