You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中使用curl命令实现文件下载功能

方案1:使用Node.js原生模块实现(无需第三方依赖)

直接用内置的http/https模块配合文件流写入,文件名可以完全自定义,和curl命令的> 文件名逻辑完全一致:

const http = require('http');
const fs = require('fs');
// 自定义保存的文件路径+名称
const savePath = './file.extension';
const fileWriteStream = fs.createWriteStream(savePath);

http.get('http://localhost:8042/endpoint/file', (res) => {
  res.pipe(fileWriteStream);
  // 下载完成监听
  fileWriteStream.on('finish', () => {
    fileWriteStream.close();
    console.log('文件下载完成');
  });
}).on('error', (err) => {
  // 下载出错时清理未完成的残次文件
  fs.unlink(savePath, () => {});
  console.error('下载出错:', err.message);
});

如果请求的是HTTPS接口,把引入的http模块替换为https即可。

方案2:node-libcurl库设置文件名的实现方式

只需要把curl返回的响应块写入自定义路径的文件流即可:

const { Curl } = require('node-libcurl');
const fs = require('fs');
// 自定义保存的文件路径+名称
const savePath = './file.extension';
const fileWriteStream = fs.createWriteStream(savePath);

const curl = new Curl();
curl.setOpt('URL', 'http://localhost:8042/endpoint/file');
// 接收响应数据块写入文件
curl.on('data', (chunk) => {
  fileWriteStream.write(chunk);
});
// 下载完成处理
curl.on('end', () => {
  fileWriteStream.close();
  curl.close();
  console.log('文件下载完成');
});
// 出错处理
curl.on('error', (err) => {
  fs.unlink(savePath, () => {});
  curl.close();
  console.error('下载出错:', err.message);
});

curl.perform();

两种方案都可以通过修改savePath变量的值,自由设置下载文件的保存路径和名称。

内容的提问来源于stack exchange,提问作者Alexandru DuDu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:27:04