在Node.js中使用多方包的ERR_EMPTY_RESPONSE错误

我是Node.js的新手,并试图从我的HTML上传图像。 我创build了可以通过使用下面的html代码将图像上传到我的web应用程序的button。

<li><a onclick="getFile()" style="cursor:pointer; color:#000000;">Choose File</a></li> <li><a onclick="uploadFile();" style="cursor: pointer; color:#000000;">Upload</a></li> <li><a onclick="save2()" id="imageSave" style="cursor:pointer; color:#000000;">Save</a></li> <li><a href="/location" style="color:#000000">Back to view</a></li> <form action="/upload", method="post", enctype="multipart/form-data"> <div style='height:0px; width:0px; overflow:hidden;'><input type="file" name="upFile" id="upFile" onchange="getCmaFileView(this, 'name')" target="dropzone_1"/></div> <div style='height:0px; width:0px; overflow:hidden;'><input type="submit" name="Upload" id="Upload" /></div> </form> 

点击上传后,它使用下面的多代码包从node.js上传图像。

 app.post('/upload', function(req, res, next) { var form = new multiparty.Form(); // get field name & value form.on('field',function(name,value){ console.log('normal field / name = '+name+' , value = '+value); }); // file upload handling form.on('part',function(part){ var filename; var size; if (part.filename) { filename = part.filename; size = part.byteCount; }else{ part.resume(); } console.log("Write Streaming file :"+global_username); var writeStream = fs.createWriteStream('/opt/work/files/'+global_username); writeStream.filename = filename; part.pipe(writeStream); part.on('data',function(chunk){ console.log(global_username+'.png'+' read '+chunk.length + 'bytes'); }); part.on('end',function(){ console.log(global_username+'.png'+' Part read complete'); writeStream.end(); }); }); // all uploads are completed form.on('close',function(){ res.status(200); }); // track progress form.on('progress',function(byteRead,byteExpected){ console.log(' Reading total '+byteRead+'/'+byteExpected); }); form.on('error',function(){ console.log('error'); }); form.parse(req); }); 

它保存了一个图像并上传得很好,但是在用ERR_EMPTY_RESPONSE消息等待一段时间后,它显示出一个ERROR。

我想这是因为回应。 这意味着在标题发送后,应该给它回应,但它不。

实际上,我写了一个代码,它在Node.js的上面的代码中给出了回应

 form.on('close',function(){ res.status(200); }); 

然而,它仍然给出同样的错误…我不知道为什么。

有人有想法吗? 还是我错了?

你不会返回响应客户端res.status(200)设置状态到响应,那么你需要调用res.send()