Есть nodejs-приложение с express 4.x. Примерно так в данный момент я осуществляю загрузку файлов из формы на сервер:
var express = require("express");
var router = express.Router();
var multipart = require("connect-multiparty");
var multipartMiddleware = multipart();
var ResourcesController = require("src/resources/resourcesController");
router.post("/saveResource", multipartMiddleware, function(req, res) {
var instance = new ResourcesController(res,req);
instance.saveResource();
});
module.exports = router;
Благодаря
connect-multiparty, можно получить в
req.files переданные файлы и дальше уже что-то с ними делать.
Но, я хочу показывать пользователю прогресс загрузки файлов на сервер, для этого я буду использовать сокеты. Например, когда срабатывает
router.post("/saveResource" ... сервер эмитит событие с инфой, клиент соответственно ее красиво рисует. Вот на этом шаге я и споткнулся, т.к. то что попадает в
req.files - это уже загружено во временную папку на сервере, а мне нужно как-то перехватить эти файлы на этапе загрузки на сервер, сделать
ReadStream и в
.on('data') посредством сокета эмитить событие с инфой клиенту. Как это сделать, пока не разобрался, может есть что-то типа
connect-multiparty но с возможностью выводить прогресс в
stream или какой либо другой способ?