[英]How to handle undefined upload in NodeJS
我使用BusBoy插件来处理文件上传。 它为事件“文件”注册了一个处理程序,该事件在文件完全上传后发生,然后处理程序将进行下一个操作。 但是,当未定义上传文件时,将注册事件处理程序,但事件“文件”将永远不会发生。 处理将需要一段时间才能停止处理此请求。 当我继续这样做超过五次时,节点进程将停止几分钟,几分钟后它将恢复正常。
那我该如何在NodeJS流程中处理这种情况呢? 不要告诉我永远不要上传未定义的文件,当文件上传失败时,我认为这种情况也会发生。
您可以使用“完成”事件来停止处理
busboy.on('finish', function() {
//your code to stop processing
});
当上载(表单)数据中的所有文件/字段事件均已触发时,将触发此“完成”事件。 (如果未定义文件/字段,则忽略触发器)。
进一步建议你的情况来复检, pipe
你的节点request
通过busboy
req.pipe(busboy);
我已经通过这个解决了这个问题。 为“文件”事件设置一个变量标志,当事件发生时,该标志将在其处理程序中设置为true。 由于“文件”事件在req.end事件之前发生,因此我为req的结束事件注册了一个处理程序。
req.on('end',function(){
if(!flag){
res.json({
....
});
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.