Привет, я хочу отправить множество разных файлов с node js сервера, чтобы реагировать на клиентскую сторону, чтобы иметь возможность загружаться на страницу. Ранее я мог отправить одно изображение с помощью fs.readFile, но я пытаюсь применить это к нескольким файлам (могут быть изображения / pdf / другие типы файлов), но, похоже, отправляет обратно что-то, в котором говорится, что тип данных - это приложение json даже если во внешнем интерфейсе я указал responseType: 'blob'. В этой функции я запрашиваю в базе данных пути к файлам и оттуда пытаюсь прочитать файл и отправить его в массив. Я не уверен, что поступаю правильно, может кто-нибудь порекомендует лучший способ.
//serverside
readChangelogAttachements (req, res) {
let body = req.method === 'POST'? req.body: req.query;
let files = []
db.generalQuery(`Example query`, (resp) => {
//ERROR
if (!resp.success) {
resp.location = 'Error in attachements';
log.error(resp);
return res.status(resp.status).json(resp);
}
else {
console.log("Attachemnts" , resp.data)
resp = resp.data;
for(let i = 0; i<resp.length; i++) {
fs.readFile(resp[i].file_path, (err, data)=> {
files.push(data);
})
}
}
});
res.send({
success:true,
files,
id: body.id
})
}
//client side
requestAttachements = (id)=> {
let params = {
id
}
console.log("ID", id);
axios({
url: /fake/example/attachements',
method: 'GET',
headers: {
Authorization: 'Bearer ' + token
},
responseType:'blob',
timeout: 10000,
params
}).then((response)=>{
console.log("REQUEST ATTACHMENT", response);
//Fill row with images
}).catch((error)=>{
console.log(error);
})
}