Rumah >pembangunan bahagian belakang >Golang >NodeJs mendapatkan fail ke API Golang
editor php Baicao baru-baru ini menemui aplikasi teknikal yang menarik: menggunakan Node.js untuk mendapatkan fail ke API Golang. Sebagai persekitaran berjalan JavaScript yang ringan, Node.js terkenal dengan operasi IO yang cekap dan ciri tidak menyekat. Sebagai bahasa pengaturcaraan berprestasi tinggi, Golang mempunyai prestasi cemerlang dalam mengendalikan tugas serentak dan komunikasi rangkaian. Menggabungkan kedua-duanya, anda boleh mendapatkan fail dalam Node.js dan menghantar fail ke API Golang untuk pemprosesan selanjutnya, memberikan pembangun penyelesaian yang lebih fleksibel dan cekap. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Node.js untuk mendapatkan fail ke API Golang dan meneroka senario aplikasinya dalam projek sebenar.
Saya cuba menghantar melalui pengambilan nod ke fail API golang dengan beberapa struktur, saya boleh membuatnya dari posmen tetapi bukan dari NodeJS
Salam. Saya buntu dan saya telah mencuba segala-galanya...
Saya perlu membuat permintaan untuk golang api, saya boleh menciptanya dalam Posmen: ia kelihatan seperti ini: Permintaan Posmen
Saya perlu mengulanginya dalam NodeJs tetapi saya terus mendapat permintaan buruk daripada API
Ini kod saya pada Node
let formData = new FormData() formData.append('postUUID', postUuid) json.data.uploadIds.map((upl, index) => { let file = data.files.find(el => el == upl.filename) formData.append(upl.uuid, fs.readFileSync(file)); }) let headers = new Headers() headers.append('Authorization', 'Bearer '+token) headers.append("Accept", "application/json"); fetch(API+'/posts/uploadMediaFiles', { method: 'POST', headers, body: formData })
Perbezaan dengan kod yang dijana oleh Posman hanya dalam formdata.append("f2b07a43-f79f-4033-ab2d-bb3176934679", fileInput.files[0], "/file_0.jpg");
dan saya lakukan sebaliknya " rel="nofollow noreferrer">fs.readFileSync()
formdata.append("f2b07a43-f79f-4033-ab2d-bb3176934679", fileInput.files[0], "/file_0.jpg");
和我做而不是 formData.append (upl.uuid, fs.readFileSync(文件));
fs.readFileSync()
返回 string
或 Buffer
仅包含文件本身的内容。这意味着您仅将文件的原始内容传递给 FormData.append()
,这又意味着您对 fetch
的调用会将生成的键/值对视为文件 - 这仅在使用 Blob
或 File
类型传递 value
Mengembalikan rentetan
atau Buffer
yang hanya mengandungi kandungan fail itu sendiri. Ini bermakna anda hanya menghantar kandungan mentah fail kepada FormData.append()
, yang seterusnya bermakna bahawa panggilan anda untuk fetch
akan mengendalikan kunci/nilai yang terhasil berpasangan sebagai Untuk fail - ini hanya berlaku apabila menghantar nilai
menggunakan jenis Blob
atau Fail
(MDN).
Sebaliknya, baca kandungan fail sebagai Array
转换为新的 Blob
对象,然后将 blob 对象和所需文件的名称传递给 FormData
medan (petua cepat tentang jawapan kepada soalan ini ):
formData.append(upl.uuid, new Blob([fs.readFileSync(file)]), upl.filename);
Atas ialah kandungan terperinci NodeJs mendapatkan fail ke API Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!