节点帮助

Node.js Fetch(对于开发人员如何工作)

Node Fetch 是 Node.js 生态系统中的一个流行的轻量级模块,旨在简化 HTTP 请求并使其直观。它提供了一种轻量且熟悉的方式与 Web API 进行交互,灵感源自浏览器环境中的 Fetch API。 Node-fetch 在 Node.js 中提供 Fetch API 支持,使服务工作者能够高效处理 HTTP 头并执行 fetch HTTPS 请求。

本文将帮助您探索Node-fetch的关键功能和用法,为希望简化其在Node.js中的HTTP请求处理的开发人员提供全面指南。 我们还将使用IronPDF,这是一个用于Node.js的PDF库,使程序员能够创建和编辑PDF,将HTML内容转换为PDF,以及更多功能。

什么是Node.js fetch?

Node fetch 是一个将 Fetch API 引入 Node.js 的模块。 Fetch API 是一个用于发起 HTTP 请求的现代接口,常用于网页浏览器中。 Node.js fetch 复制了此功能,使 Node.js 应用程序能够以同样的便捷性和简单性执行 HTTP 请求。 这使它成为那些已经熟悉 Fetch API 的开发人员或那些正在寻找一种简单方式来处理其 Node.js 应用程序中 HTTP 请求的开发人员的绝佳选择。

Node.js Fetch(开发人员如何使用):图1 - Node.js Fetch

Node.js Fetch 的关键功能

1. 简单性和熟悉性

Node.js fetch 模拟浏览器中的 Fetch API,为开发人员提供一个简单且熟悉的接口。

2. 基于 Promise

类似于 Fetch API,Node.js fetch 是基于 Promise 的,使开发人员能够以更可读和易于管理的方式编写异步代码。

3. 轻量级

Node.js fetch 是一个极简的库,使其快速且高效。 它没有较大型HTTP库的开销,保持您的应用程序轻量化。

4. 兼容性

Node.js fetch 支持多种 HTTP 方法、头和响应类型,具有很高的灵活性。

5. 流式传输

它支持流式响应,这对于高效处理大型负载非常有用。

安装 Node.js Fetch

要开始使用Node-fetch,您需要通过 npm(节点包管理器)安装它。 在你的项目目录中运行以下命令:

npm install node-fetch

基本用法

下面是一个使用 Node.js fetch 进行 GET 请求的基本示例:

import fetch from 'node-fetch';
import fs from 'fs';
const url = 'https://jsonplaceholder.typicode.com/posts';
fetch(url)
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        return response.json();
    })
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error('There has been a problem with your fetch operation:', error);
    });
js
JAVASCRIPT

此代码片段演示了一个简单的GET请求来从API获取JSON数据。 fetch 函数返回一个解析为响应对象的承诺。 您然后可以调用返回响应的方法,例如 json() 来解析响应体。

控制台输出

Node.js 获取(开发人员如何使用):图 2 - 使用 Node.js fetch 对 API URL https://jsonplaceholder.typicode.com/posts 进行简单的 GET 请求以获取 JSON 数据的控制台输出。

高级用法

Node.js fetch 还支持更多高级功能,例如,进行 POST 请求、设置自定义请求头对象以及处理不同的响应类型。

发起 POST 请求

import fetch from 'node-fetch';
import fs from 'fs';
const url = 'https://jsonplaceholder.typicode.com/posts';
const data = { key: 'value' };
fetch(url, {
    method: 'POST',
    // Content Type Header
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
})
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        return response.json();
    })
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error('There has been a problem with your fetch operation:', error);
    });
js
JAVASCRIPT

此示例展示如何使用 JSON 负载发送 POST 请求对象。 headers 选项用于指定新响应的内容类型,body 选项包含序列化的 JSON 数据。

控制台输出

Node.js Fetch(开发人员如何使用):图3 - 使用Node.js fetch发送到URL https://jsonplaceholder.typicode.com/posts 的POST请求对象的控制台输出

处理流响应

import fetch from 'node-fetch';
import fs from 'fs';
const url = 'https://jsonplaceholder.typicode.com/posts';
fetch(url)
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        const dest = fs.createWriteStream('./large-data.json');
        response.body.pipe(dest);
    })
    .catch(error => {
        console.error('There has been a problem with your fetch operation:', error);
    });
js
JAVASCRIPT

在此示例中,响应主体作为文件流传输到服务器,展示了如何高效处理大型响应。

输出

Node.js 获取(它如何为开发人员工作):图 4 - 输出文件:large-data.json

错误处理

在处理HTTP请求时,正确的错误处理至关重要。 Node.js fetch 错误响应提供了一种使用 Promise 捕获和处理错误的简单方法。

fetch(url)
    .then(response => {
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        return response.json();
    })
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error('Fetch error:', error);
    });
js
JAVASCRIPT

如果响应头状态不在 200-299 范围内,则会抛出错误,并且 catch 块会处理请求过程中发生的任何错误,否则将返回有效的 JSON 响应。

在 Node.js 中使用 Node.js fetch 和 IronPDF 生成 PDF 文件

Node fetch 是 Node.js 生态系统中用于发出 HTTP fetch 请求的流行库。 当与IronPDF结合使用时,这个强大的PDF生成库成为从各种网络资源创建PDF的多功能工具。

什么是IronPDF?

IronPDF 是一个强大的库,允许开发人员以简便高效的方式创建、编辑和提取PDF内容。 适用于 C#、Python、Java 和 Node.js,IronPDF 通过其直观的 API 使 PDF 操作变得简单。

Node.js Fetch(开发者如何使用):图 5 - IronPDF for Node.js:Node.js PDF 库

安装IronPDF库

首先,您需要在项目中安装IronPDF。 使用以下 npm 命令安装这些库:

npm i @ironsoftware/ironpdf

让我们探讨如何使用Node.js fetch与IronPDF结合生成来自网络内容源的PDF文件。

结合Node.js的fetch和IronPDF

您可以利用 Node.js fetch 和 IronPDF 的强大功能动态获取网页内容并生成 PDF。 例如,您可能会获取API端点的数据,生成动态HTML,并将其转换为PDF。 以下示例演示了如何完成此任务:

import fetch from 'node-fetch';
import { PdfDocument } from '@ironsoftware/ironpdf';
(async () => {
    // Replace the apiUrl with the actual Url
    const apiUrl = "https://jsonplaceholder.typicode.com/posts";
    // Fetch data from API
    const response = await fetch(apiUrl);
    const data = await response.json();
    // Create dynamic HTML content with a table
    const htmlContent = `
        <!DOCTYPE html>
        <html>
        <head>
            <title>Data Report</title>
            <style>
                body {
                    font-family: Arial, sans-serif;
                    margin: 40px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                }
                table, th, td {
                    border: 1px solid black;
                }
                th, td {
                    padding: 10px;
                    text-align: left;
                }
                th {
                    background-color: #f2f2f2;
                }
                h1 {
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Data Report</h1>
            <table>
                <tr>
                    <th>User ID</th>
                    <th>ID</th>
                    <th>Title</th>
                    <th>Body</th>
                </tr>
                ${data.map(item => `
                    <tr>
                        <td>${item.userId}</td>
                        <td>${item.id}</td>
                        <td>${item.title}</td>
                        <td>${item.body}</td>
                    </tr>
                `).join('')}
            </table>
        </body>
        </html>
    `;
    // Generate PDF from the HTML string
    const pdfFromHtmlString = await PdfDocument.fromHtml(htmlContent);
    await pdfFromHtmlString.saveAs("dynamic_report.pdf");
    console.log("PDF generated from API data successfully!");
})();
js
JAVASCRIPT

输出 PDF

JSON 响应输出优雅地映射到 HTML 表格,并且IronPDF能够准确转换所有样式。

Node.js Fetch(它如何为开发者工作):图6 - 使用IronPDF准确地将HTML字符串转换为PDF。

有关IronPDF及其功能的更多详细信息,请参阅此文档页面

结论

Node fetch 是一个强大而简单的工具,用于在 Node.js 中进行 HTTP 请求。 其熟悉的API、基于Promise的方法以及轻量级特性使其成为初学者和有经验的开发者的优秀选择。 无论是执行基本的GET请求,还是使用自定义头处理复杂的POST请求,Node fetch都提供了一种简洁高效的方式与Web API进行交互。

Node fetchIronPDF结合使用,为在Node.js中从各种网页内容来源生成PDF提供了一种强大而灵活的方式。 通过集成这两个库,您可以轻松创建利用网络数据并生成专业 PDF 的强大应用程序。

IronPDF 起价为 $749。 免费体验其强大的PDF生成功能。 今天就试试看,并亲自感受一下区别吧!

Darrius Serrant
全栈软件工程师(WebOps)

达瑞乌斯·塞兰特拥有迈阿密大学计算机科学学士学位,目前在Iron Software担任全栈WebOps营销工程师。从小对编码的热爱使他认为计算机既神秘又易接近,成为创意和解决问题的完美媒介。

在Iron Software,达瑞乌斯乐于创造新事物并简化复杂概念,使其更易于理解。作为我们在职开发者之一,他还自愿教授学生,将他的专业知识传授给下一代。

对达瑞乌斯而言,他的工作之所以令人满足,是因为它具有价值并产生了真正的影响。

< 前一页
Ramda JS NPM(为开发人员的工作原理)
下一步 >
Multer Node.js(开发者如何使用)

准备开始了吗? 版本: 2025.5 刚刚发布

查看许可证 >