gpt4 book ai didi

node.js - 如何处理nodejs中的xhr blob post

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:30 27 4
gpt4 key购买 nike

客户端代码:

var xhr = new XMLHttpRequest();
xhr.open('POST', '/frame', true);
xhr.send(blob);

服务器代码:

app.use(bodyParser.urlencoded({extended: false,limit: '50mb'}));
app.post('/frame', function (req, resp) {
console.log(req.body);
});

这给出了 PayloadTooLargeError: too many parameters添加

xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');

没有解决问题。还有其他想法吗?

最佳答案

假设您的 blob 变量不是真正的 url 编码表单数据,而是任何类型的内容。然后在服务器端,您可以直接读取请求流。请记住,http.Server.request 事件处理程序中的 req 变量是一个可读流。这将消除 body-parser 中间件强加的任何大小限制。保留您的原始客户端代码然后您的服务器代码将是:

// app.use(bodyParser.urlencoded({extended: false,limit: '50mb'}));

app.post('/frame', function (req, resp) {
req.on('readable', function(){
console.log(req.read());
});
});

如果内容太大,即使对于结构化数据,在流式传输时处理请求也是一个好主意。例如,在过去,当我使用带有大 json 请求的 body-parser#json 中间件时,我遇到了性能问题,并解决了删除 body-parser#json 中间件和使用 oboe用于解析流式输入。

关于node.js - 如何处理nodejs中的xhr blob post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35418921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com