| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | var needle = require('needle');const fs = require('fs-extra')function stream_multiple(req, res, _urls, stream_dir, index = 0) {    if (index == 0) {        // initial state    }    let writeStream;    const uri = _urls[index];    if (index == undefined) {        index = 0;        stream_multiple(req, res, _urls, stream_dir, index);    } else {        writeStream = fs.createWriteStream(`${stream_dir}` + `${index}.jpeg`);        writeStream.on("ready", () => console.log({ msg: `STREAM::WRITE::READY::${index}` }));        writeStream.on("open", () => console.log({ msg: `STREAM::WRITE::OPEN::${index}` }));        writeStream.on("finish", () => console.log({ msg: `STREAM::WRITE::DONE::${index}` }));        writeStream.on('close', () => {            if (index >= _urls.length - 1) {                res.redirect('/');            } else {                stream_multiple(req, res, _urls, stream_dir, index + 1);            }        })        needle            .get(uri, function (error, response) {                if (response.bytes >= 1) {                    // you want to kill our servers                }                if (!error && response.statusCode == 200) {                    // good                } else {                    // then we can retry later                }            })            .pipe(writeStream)            .on('done', function () {                // needle             });    }}module.exports = { stream_multiple }
 |