node-fetch Advanced Usage All In One
fetch
// stream
https://www.npmjs.com/package/node-fetch#streams
demos
Node.js web crawler
import fetch from "node-fetch";
import path from 'node:path';
import {fileURLToPath} from 'node:url';
// import fs from 'node:fs';
import {createWriteStream} from 'node:fs';
import {pipeline} from 'node:stream';
import {promisify} from 'node:util'
// const __filename = fileURLToPath(import.meta.url);
// const __dirname = path.dirname(__filename);
// console.log(`import.meta.url`, import.meta.url)
// console.log(`__dirname`, __dirname)
async function downloadFile(url, path) {
const streamPipeline = promisify(pipeline);
fetch(url).then(async (res) => {
if (!res.ok) {
throw new Error(`unexpected response ${res.statusText}`);
}
console.log(`✅ res =`, res)
return await streamPipeline(res.body, createWriteStream(path));
}).catch(err => {
console.log(`❌ err =`, err)
}).finally(() => {
console.log(`finally
标签:node,const,url,res,path,Usage,import,fetch
From: https://www.cnblogs.com/xgqfrms/p/17659774.html