NodeJS環境下使用axios上傳檔案

2021-10-03 21:43:47 字數 983 閱讀 3862

最近有個需求,需要在nodejs後端上傳到雲儲存伺服器,剛好對axios這個庫比較熟悉,因此便開始在網上查資料,但是網上大多的都是用axios在前端上傳檔案的**,即是基於瀏覽器環境的。後來找到了基於nodejs環境的axios上傳**,一番copy後便開始了測試,本以為會一帆風順,沒想到伺服器那邊卻總是返回如下錯誤,也就是說我們的請求並沒有以multipart/form-data的形式封裝好。

the body of your post request is not well-formed multipart/form-data.

後來在stack overflow上發現一位老哥也遇到了和我一樣的問題,看了網友的回答後才發現原來是沒有往header裡加content-length,所以伺服器解析不了我們的資料。因此我們在封裝好form-data後,再獲取其長度並新增到header裡再去請求就ok啦~

附上完整**:

const fs = require('fs');

const axios = require('axios');

const formdata =require('form-data');

var localfile = fs.createreadstream('./'+filekey);

var formdata = new formdata();

var headers = formdata.getheaders();//獲取headers

//獲取form-data長度

formdata.getlength(async function(err, length)

//設定長度,important!!!

headers['content-length']=length;

await axios.post(data.url,formdata,).then(res=>).catch(res=>)

})

Windows下配置nodejs環境

nodejs流行有段時間了,本著折騰的目的,試著在windows下用了用,的確是方便。可以看到d develop nodejs目錄下的檔案目錄應該如下 node modules node.exe npm.cmdnrm用來檢視和切換當前使用的registry,國內的網路情況大家都懂,一般來說使用國內的...

Windows下nodejs環境配置

安卓混合開發或者以太坊區塊鏈開發在最近總是會有聽別人提及,其實理論的東西還是挺多的,還有那些相應的命令,主要還是要在實踐中來理解那些定義,下面來說一說node.js的一些知識,我也是剛剛了解一點,不足之處多多見諒。2.配置環境變數 計算機 或者我的電腦 右擊屬性 高階系統設定 環境變數。新建乙個使用...

linux環境下安裝nodeJS

1 先到系統根目錄 cd 然後建立乙個資料夾 mkdir nodejs 用來存放nodejs壓縮包和檔案 然後進入這個資料夾 cd nodejs 3 解壓安裝包 tar xvf node v10.14.2 linux x64.tar.xz 4 然後cd node v10.14.2 linux x64...