2016-09-14 2 views
0

В узле Express я читаю локально сохраненный zip-файл и отправляет его на сервлет Java, используя модуль запроса.Как найти, что загрузка завершена - Node Express

var req = require('request'); 
//Define a read stream from our source zip file 
var source = fs.createReadStream('abc.zip'); 
//Send our data via POST request 
source.pipe(req.post('http://myhost:8080/myservlets/uploadzip')); 
//Can I cleanup abc.zip here? 

После загрузки zip мне нужно очистить почтовый индекс от сервера узлов. Проблема, с которой я сталкиваюсь, заключается в том, что, как найти, что загрузка zip завершена? Есть ли способ получить обещание, когда загрузка завершится или определит обратный вызов, чтобы я мог поместить код очистки zip только после завершения загрузки.

+0

Возможный дубликат [createReadStream(). Pipe() Callback] (http://stackoverflow.com/questions/14962085/createreadstream-pipe-callback) –

ответ

0

Я думаю, что это то же самое, как просили здесь: createReadStream().pipe() Callback В вашем случае он должен работать как:

source.on('close', function(){ 
    fs.unlink('abc.zip'); 
}); 

Значение вы просто должны перезаписать обратный вызов включен в fs. В ответе loganfsmyth вы можете найти способ продлить это для хранения файлов, у которых были ошибки при отправке путем перезаписывания обратного вызова error.