NodeJS卡在上传图片中

时间:2015-01-15 15:21:41

标签: javascript node.js express

我有一段节点代码来上传图片。图像大小为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();
                    }
                });
            });

1 个答案:

答案 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
            }
        });
    });
});