我有一段节点代码来上传图片。图像大小为10~200K。你可以看到你并不大。问题是,节点在上传时长时间保持忙碌(可能是10分钟)并且它不会对新请求做出响应。该代码是Android应用程序使用的JSON API的一部分。
var fs = require('fs');
exports.upload = function(req, res){
....
var rawBody = new Buffer('');
req.on('data', function(chunk){
rawBody = Buffer.concat([rawBody, chunk]);
});
req.on('end', function(){
winston.info('on end of uploading moment');
fs.writeFile(filepath, rawBody, 'binary', function(err){
if(err) winston.error(err);
else{
db.updatesomething();
}
});
});
答案 0 :(得分:2)
请求永远不会向浏览器返回任何内容,这就是它挂起的原因,它正在等待回复
var fs = require('fs');
exports.upload = function(req, res){
var rawBody = new Buffer('');
req.on('data', function(chunk){
rawBody = Buffer.concat([rawBody, chunk]);
});
req.on('end', function(){
winston.info('on end of uploading moment');
fs.writeFile(filepath, rawBody, 'binary', function(err){
if(err) {
winston.error(err);
res.end('error');
} else {
db.updatesomething();
res.end('success'); // send a response back
}
});
});
});