Ste*_*nko 4 post xmlhttprequest node.js express
客户代码:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/frame', true);
xhr.send(blob);
Run Code Online (Sandbox Code Playgroud)
服务器代码:
app.use(bodyParser.urlencoded({extended: false,limit: '50mb'}));
app.post('/frame', function (req, resp) {
console.log(req.body);
});
Run Code Online (Sandbox Code Playgroud)
这给了PayloadTooLargeError:添加了太多参数
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
Run Code Online (Sandbox Code Playgroud)
没有解决问题.还有其他想法吗?
假设您的blob变量不是真正的url编码形式数据和任何类型的内容.然后在服务器端,您可以在它进入时读取请求流.请记住,事件处理程序req上的变量http.Server.request是可读流.这将删除body-parser中间件强加的任何大小限制.保留原始客户端代码,然后保存服务器代码:
// app.use(bodyParser.urlencoded({extended: false,limit: '50mb'}));
app.post('/frame', function (req, resp) {
req.on('readable', function(){
console.log(req.read());
});
});
Run Code Online (Sandbox Code Playgroud)
如果内容太大,即使对于结构化数据,处理流处理请求也是一个好主意.例如,在过去,当我使用body-parser#json具有大json请求的body-parser#json中间件并解决删除中间件和使用oboe解析流输入的问题时,我遇到了性能问题.
| 归档时间: |
|
| 查看次数: |
4343 次 |
| 最近记录: |