2014-09-27 73 views
0

我正在將文件上傳到Node.js Restify服務器,並試圖將一些進度信息發送回客戶端。使用Node.js上傳進度Restify

在我的示例中,文件上傳成功,但在上傳完整文件併發送了res.end()之前,不會顯示進度點(。)。

是否可以寫入響應流並將狀態信息發送回客戶端?

var restify = require('restify'); 
var fs = require('fs'); 


function uploadFile(req, res, next) { 
    var path = req.params.devicename; 
    var filename = req.params.filename; 

    console.log("Upload file"); 
    var writeStream = fs.createWriteStream(path + "/" + filename); 
    var r = req.pipe(writeStream); 

    res.writeHead(200, {"Content-type":"text/plain"}); 

    r.on("drain", function() { 
      res.write(".", "ascii"); 
    }); 

    r.on("finish", function() { 
      console.log("Upload complete"); 
      res.write("Upload complete"); 
      res.end(); 
    }); 

    next(); 
} 

// *************** start Restify server ********************* 
var server = restify.createServer(); 
server.post('/api/uploadfile/:devicename/:filename', uploadFile); 
server.listen(8080, function() { 
    console.log('%s listening at %s', server.name, server.url); 
}); 

感謝

回答