Можно ли в node.js пайпить несколько файлов?
Есть массив из названий файлов. Нужно их отправлять поочередно. При этом кол-во файлов заранее не известно. Уже несколько часов ищу примеры, но никак не могу найти.
var http = require('http'),
url = require('url'),
fs = require('fs');
new http.Server( function (req, res) {
if (req.url === "/music") {
var files = ["1.mp3", "2.mp3"];
sendFile(files, res);
}
}).listen(1337);
function sendFile(files, res) {
file = fs.ReadStream(files);
file.pipe(res);
file.on("error", function (err){
res.statusCode = 500;
res.end("server error");
console.log(err);
});
file
.on("open", function () {
console.log("open");
})
.on("close", function () {
console.log("close");
});
res.on("close", function (){
file.destroy();
console.log("file destroy")
});
}
Когда в функцию передаю название 1 файла - все ок. Но когда передаю массив возникает ошибка. Пытался по привычке решить при помощи for, но как я понял в ноде он не так работает.
По сути мне у меня в приложении будет куча песен (на пример 100) и нужно чтоб они отсылались одна за одной. Через ajax делать нельзя, нужно чтоб работало как радио. В админке будет выбираться песня, которая будет воспроизводиться.
Вам не надо пытаться отправить сразу все. Отправляйте один файл, подписывайтесь на окончание чтения и только тогда начинайте читать следующий и так далее