[英]Node js - How to send request into small chunk of data (Error: request entity too large)
每当我尝试通过网络将巨大的Json对象(包含基本图像)发送到我的Node js服务器时,我都会得到这个
错误:请求实体太大
有这样的解决方案的链接 ( 计算器问题 ),其建议增加节点JS服务器上的限制。 我正在寻找客户端解决方案。 是否有任何方法可以分解发送的数据并让服务器等待接收所有数据包然后进行处理? (诺言??)
假设 ,如果我的文件为20mb,即使我的限制设置为5mb,我也可以发送它,这将花费更多时间。 可能吗? 你能把我放在正确的轨道上吗?
我在后端使用Express
这里有一些代码可以参考:
//AJAX CALL
var promise = $.Deferred();
$.ajax('/module/report/ddl',{
data: {
widget: JSON.stringify(widget), <--- large, very large
filename: filename,
username: username,
reportname: reportName
},
type: 'POST',
success: function(result){
//Do something
promise.resolve(result);
},
error :function(err) {
/* Act on the event */
promise.reject(err);
}
});
return promise;
}
这是我的服务器端
router.route('/ddl').post(ddlReport));
function ddlReport(req, res){
var filename = req.body.filename;
var widgets = req.body.widget; <--- Once again large
var username = req.body.username;
ctrl.ddlProcess(widgets,filename,title,username,function(err, result){
if(err){
res.status(422).send(err);
}else {
res.send(result);
}
});
}
如果您需要更多信息,请告诉我! 我正在尝试找到一种最佳解决方案,即使它不是我建议的解决方案!
感谢您的时间! 祝你有美好的一天!
您是否尝试过将大型json分成小块并分别发送? 只需添加一些附加信息,例如{packet:1,total:20,data:...(一小块大数据)},然后同时通过ajax或一对一地发送它们。 并在节点服务器端收集所有这20件。 另外,您可以拥有一些校验和。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.