Kapag niresolba ng Axios ang isang Node request gamit ang responseType: 'stream', handa nang gamitin ang body. Hindi pa kumpleto ang file. Hintayin ang paglilipat patungo sa destinasyon nito:

import { createWriteStream } from 'node:fs';
import { pipeline } from 'node:stream/promises';

const response = await client.get(url, { responseType: 'stream' });
await pipeline(response.data, createWriteStream(partPath));

Gumagamit ito ng naka-configure nang client. Dapat suportahan ng adapter nito ang napiling proxy o SOCKS agent; ang built-in na HTTP proxy option ng Axios at ang SOCKS agent ay magkaibang mekanismo. Ang aplikasyon ang nagbibigay ng URL, mga timeout at patakaran sa pagkansela.

Gumamit ng pansamantalang landas na pag-aari ng operasyong ito. Magpasya kung paano haharapin ang mga banggaan bago likhain ang write stream, upang ang paglilinis pagkatapos ng kabiguan ay hindi mag-alis ng file ng iba. Ang sinadyang pagpapatuloy ay nangangailangan ng sariling patakaran.

Iniugnay ng pipeline ang pagbasa at pagsulat at iniuulat ang kabiguan ng mga ito. Ang pagtawag sa response.data.pipe(file) at agad na pag-log ng tagumpay ay lumalaktaw sa puntong iyon ng pagkumpleto. Maaaring mangyari ang pagkaputol ng network o punong disk pagkatapos dumating ang wastong HTTP response; itago ang konteksto ng response at ang error na nagpahinto sa pagproseso.

Pagkatapos ng matagumpay na inaasahang pagproseso, gawin ang mga pagsusuri ng artefact ng aplikasyon at pagkatapos ay ilathala ang huling pangalan. Ang pagkumpleto ay nangangahulugang naubos at naisulat ang stream sa ilalim ng mga API na ito, hindi na ito ang inaasahang release o dokumento. Sa kabiguan o pagkansela, itago o alisin ang bahagyang file ayon sa napiling patakaran sa pagpapatuloy. Ang signal ng pagkansela ay maaaring magpahinto sa kaugnay na request at sa mga operasyon ng stream; hindi nito pinagpapasyahan kung ano ang dapat gawin ng aplikasyon sa output.

Kaugnay na mga artikulo