将 curl 转换为 Node.js

使用内置的 http 模块将 curl 命令转换为 Node.js 代码。curl2code 通过 WebAssembly 完全在您的浏览器中运行——您的 API 密钥和数据保持私密。对于浏览器端 JavaScript,请参阅我们的 curl 转 JavaScript 转换器。如果您更喜欢 Python,请尝试 curl 转 Python。您可以在下方找到即插即用的示例。

如何从浏览器复制 curl

  1. 1

    打开开发者工具

    F12Ctrl+Shift+I 打开浏览器开发者工具。

  2. 2

    进入 Network 标签页

    点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。

  3. 3

    复制为 cURL

    右键点击请求 → Copy (复制) → Copy as cURL (复制为 cURL)。然后将其粘贴到上方。

常见问题解答

什么是 Node.js http 模块?

httphttps 模块是 Node.js 内置的模块,用于在没有任何依赖的情况下发起 HTTP 请求。它们提供了对请求/响应流的底层控制。对于更高层级的替代方案,curl2code 还支持 axiosnode-fetchgotkysuperagent

http vs axios vs node-fetch vs got —— 我应该使用哪一个?

http 是零依赖的,但代码较冗长。axios 提供简洁的 API,支持拦截器和自动 JSON 解析。node-fetch 镜像了浏览器的 Fetch API。got 功能丰富,支持重试、分页和流。根据项目需求进行选择。对于浏览器端 JavaScript,请参阅我们的 curl 转 JavaScript 转换器

如何在 Node.js 中处理身份验证?

在 options 对象中设置 Authorization 请求头。对于 Basic 认证,使用 Buffer.from(user + ':' + pass).toString('base64')。使用 axios 时,可以使用内置的 auth 配置选项。curl2code 会为所有支持的 Node.js 库转换 -u 和 Bearer 令牌标志。

如何在 Node.js 中发送多部分表单数据?

使用内置的 http 模块时,需要手动构建多部分 body 或使用 form-data 包。使用 axios 时,将 FormData 实例作为 body 传递。Node.js 18+ 拥有内置的 FormData 类。curl2code 会处理每个库变体的 -F 标志。

如何在 Node.js 中处理 HTTP 错误?

使用 http 时,监听请求上的 'error' 事件并检查 response.statusCode。使用 axios 时,非 2xx 状态码会抛出错误,可以在 try/catch 中捕获。使用 got 时,采用相同模式并配合其内置的失败重试逻辑。

如何在 Node.js 中处理流式响应?

http 模块默认返回可读流——可以使用 response.pipe(fs.createWriteStream('file')) 进行管道传输。使用 got 时,使用 got.stream(url)。使用 axios 时,设置 responseType: 'stream'。流式传输是处理大文件的理想选择,可避免将整个响应加载到内存中。

如何在 Node.js HTTP 请求中设置超时?

使用 http 时,在 options 中传递 timeout 并监听 'timeout' 事件,然后调用 req.destroy()。Axios 接受以毫秒为单位的 timeout。Got 支持 timeout.request 以及内置的带可配置退避策略的自动重试。

如何在 Node.js 中使用代理?

内置的 http 模块需要手动进行代理隧道处理。请使用 https-proxy-agenthttp-proxy-agent 包。Axios 通过 proxy 配置支持代理。Got 使用带有代理代理(proxy agents)的 agent 选项。curl2code 会适当地转换 -x--proxy 标志。

如何在 Node.js 中发送带有 JSON 正文的 POST 请求?

使用 curl2code 将类似于 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 命令转换为 Node.js。生成的代码使用 axios.post(url, { key: 'value' })。curl2code 会自动检测带有 JSON 内容的 -d/--data 标志,并在 axios 代码中设置相应的 Content-Type 请求头。

如何在 Node.js 中添加 Bearer 令牌授权?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 传递给 curl2code,它会生成带有认证请求头的 axios 代码:headers: { Authorization: 'Bearer YOUR_TOKEN' }。curl2code 会从 -H "Authorization: Bearer ..."--oauth2-bearer 标志中检测 Bearer 令牌。对于 Basic auth,请使用 -u user:pass

如何在 Node.js 中设置 Content-Type 请求头?

curl2code 将 curl -H "Content-Type: application/json" URL 转换为带有正确请求头的 axios 代码:headers: { 'Content-Type': 'application/json' }。对于 -d 数据,curl 默认使用 application/x-www-form-urlencoded;对于 -F 表单上传,它使用 multipart/form-data。curl2code 会将每一项映射到正确的 axios API。

有用链接

curl 指南

将 curl 转换为其他语言