2014-09-27 9 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); 
}); 

Благодаря

ответ

0

@Rick это уже есть ответ здесь: Node.js + restify cant upload file

тэк этого является то, что вы не можете сделать это из коробки, так как анализатор тела тянет весь файл. Считается, что такая же статья SO относится к этой статье, которая делает то, что вы ищете: http://code.tutsplus.com/tutorials/how-to-create-a-resumable-video-uploade-in-node-js--net-25445

Смежные вопросы