#node.js #reactjs #exceljs
#node.js #reactjs #exceljs
Вопрос:
💬 Вопросы и помощь
Всем привет,
У меня есть два отдельных проекта. Клиент: React, Сервер: NodeJS
Я создаю excel на стороне NodeJS, отправляя форму с помощью React.
Я хочу загрузить этот Excel со стороны React. Однако я не смог его загрузить.
Код NodeJS
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" "Report.xlsx");
workbook.xlsx.write(res)
.then(function(){
res.end();
});
NodeJS возвращает сетевой уровень
Первая попытка React.js код
startDownload(response,"resobyte.xlsx")
function startDownload(file, fileName) {
const url = window.URL.createObjectURL(new Blob([file]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
link.parentNode.removeChild(link);
}
Вторая попытка React.js код
let blob = new Blob([response], {type: 'vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'});
FileSaver.saveAs(blob, 'fileName.xlsx");
Файл был загружен.
Мой вызов службы реагирования
export const createExcel = async (model) => {
let response = () => {
return new Promise(function(resolve, reject) {
fetch(API_URL '/api/excel/create', {
method: 'POST',
responseType: 'arrayBuffer',
headers: {
'Content-Type': 'application/json',
'x-access-token' : TokenService.getToken()
},
body: JSON.stringify(model),
}).then(response => {
resolve(response);
});
});
};
let responseData = await response();
return responseData;
}