Estoy tratando de cargar un archivo usando la búsqueda nativa en NodeJS (agregado en el nodo 17.5, consulte https://nodejs.org/ko/blog/release/v17.5.0/ ).
Sin embargo, sigo recibiendo el siguiente error:
TypeError: fetch failed at Object.processResponse (node:internal/deps/undici/undici:5536:34) at node:internal/deps/undici/undici:5858:42 at node:internal/process/task_queues:140:7 at AsyncResource.runInAsyncScope (node:async_hooks:202:9) at AsyncResource.runMicrotask (node:internal/process/task_queues:137:8) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: TypeError: object2 is not iterable at action (node:internal/deps/undici/undici:1660:39) at action.next (<anonymous>) at Object.pull (node:internal/deps/undici/undici:1708:52) at ensureIsPromise (node:internal/webstreams/util:172:19) at readableStreamDefaultControllerCallPullIfNeeded node:internal/webstreams/readablestream:1884:5) at node:internal/webstreams/readablestream:1974:7 at process.processTicksAndRejections (node:internal/process/task_queues:95:5)Estoy usando el siguiente código para crear y enviar la respuesta del formulario:
function upload(hub_entity_id, document_path) { let formData = new FormData(); formData.append("type", "Document"); formData.append("name", "ap_test_document.pdf"); formData.append("file", fs.createReadStream("ap_test_document.pdf")); formData.append("entity_object_id", hub_entity_id); const form_headers = { Authorization: auth_code, ...formData.getHeaders(), }; console.log( `Uploading document ap_test_document.pdf to hub (${hub_entity_id}) ` ); console.log(formData); let raw_response = await fetch(urls.attachments, { method: "POST", headers: form_headers, body: formData, }); console.log(raw_response); }Use fs.readFileSync en lugar de createReadStream
formData.append("archivo", fs.readFileSync("ap_test_document.pdf"));
También puede usar el nombre de archivo directamente en formData.append
formData.append("archivo", fs.readFileSync("ap_test_document.pdf"), "ap_test_document.pdf");