這是 API 給出的回應

這是代碼片段。
axios.get(api , { headers: {"Authorization" : `Bearer ${token}` , "Content-Type":"application/json" , "Accept" : "*/*", "Accept-Encoding" : "gzip, deflate, br"} })
.then(res => {
try {
let fileString = iconv.decode(res.data, 'win1252');
fs.writeFile('NodeReport.xlsx' , fileString , (error) => {
console.log(error);
});
}
catch (err){
console.log(err);
}
}
);
因此,如果我在瀏覽器中點擊 API,它會下載 excel 檔案,如果我將 Postman 的回應保存為檔案,它也會下載 excel 檔案。但我想從我的 nodeJS 代碼中訪問 API,然后將檔案保存為 Excel 檔案。我嘗試使用 fs.writeFile 但它沒有打開保存的檔案,它說格式錯誤或內容已損壞。誰能告訴我如何從 API 回應中保存此檔案?
uj5u.com熱心網友回復:
在你的腳本中,作為一個修改,下面的修改怎么樣?
修改后的腳本:
axios
.get(api, {
headers: { Authorization: `Bearer ${token}` },
responseType: "arraybuffer",
})
.then((res) => {
try {
fs.writeFile("NodeReport.xlsx", res.data, (error) => {
console.log(error);
});
} catch (err) {
console.log(err);
}
});
在此修改中,資料作為陣列緩沖區檢索,并將資料保存為 XLSX 檔案。
如果匯出的檔案損壞,請修改
fs.writeFile("NodeReport.xlsx", res.data, (error) => {為fs.writeFile("NodeReport.xlsx", new Buffer.from(res.data), (error) => {并再次測驗。
參考:
- axios
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/486514.html
標籤:javascript 节点.js 擅长 谷歌表格 谷歌驱动API
