极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。

# 在 Node 中如何发送请求

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 650 (opens new window)

如果使用原生 API,可使用 http/https 核心模块

const https = require("https");

https
  .get("https://icanhazip.com", (res) => {
    console.log("statusCode:", res.statusCode);
    console.log("headers:", res.headers);
    let data = "";

    res.on("data", (chunk) => {
      data += chunk;
    });

    res.on("end", () => {
      console.log(data);
    });
  })
  .on("error", (e) => {
    console.error(e);
  });

如果使用第三方库的话,可使用 axios 等。

目前,Node 团队抛弃了核心模块 http/https 从头开发了一个新的 http client,名为 undeci (opens new window),将有可能成为以后默认的 http client

import { request } from "undici";

const { statusCode, headers, trailers, body } = await request(
  "http://localhost:3000/foo"
);

console.log("response received", statusCode);
console.log("headers", headers);

for await (const data of body) {
  console.log("data", data);
}
Last Updated: 11/27/2021, 6:11:48 PM