Node.js 中使用 Superagent 实现 HTTP 请求链式调用

· 约 5 分钟读完

引言

在 Node.js 开发中,我们经常需要发起 HTTP 请求。通常我们会使用 http 或 https 模块来实现。但是,这些模块使用起来不够方便,需要写较多的代码来实现一个简单的请求。而 Superagent 是一个流行的 HTTP 请求模块,它具备链式调用、Promise、超时等功能,在 Node.js 开发中十分方便实用。本文就来介绍如何在 Node.js 中使用 Superagent 进行 HTTP 请求链式调用。

安装

使用 npm 安装 Superagent:

请求方式

Superagent 提供了多种请求方式:

  • get(url[, data][, callback])
  • post(url[, data][, callback])
  • put(url[, data][, callback])
  • patch(url[, data][, callback])
  • del(url[, data][, callback])

这些方法的参数和含义与 HTTP 请求时相同。其中,callback 参数为可选项,如果不传递该参数,则会返回一个 Promise。

链式调用

Superagent 最大的特点就是支持链式调用,这使得我们可以在一个调用中完成多个操作。

发起 GET 请求

使用 Superagent 发起 GET 请求的示例代码:

在上面的代码中,我们发起一个 GET 请求到 GitHub API,获取了 octocat 用户的信息。在这个请求中,我们使用了 get 方法发起请求,然后使用 end 方法指定请求完成后的回调函数。当请求完成时,回调函数会接收两个参数:err 和 res。如果请求出错,err 参数会非空,我们可以在回调函数中处理错误;如果请求成功,err 参数将为 null,我们可以通过 res.text 获取服务器返回的响应内容。

发起 POST 请求

使用 Superagent 发起 POST 请求的示例代码:

在上面的代码中,我们发起一个 POST 请求到 httpbin.org,发送了一个包含 foo 属性的 JSON 对象。我们使用了 send 方法设置请求正文,使用 set 方法设置请求头部。这些方法的返回值仍然是 Superagent 实例,因此可以链式调用。我们可以在回调函数中处理服务器返回的响应内容。

Promise

除了回调函数,Superagent 还支持 Promise 风格的调用方式。在发起请求时,我们可以不传递回调函数,直接返回一个 Promise:

在使用 Promise 风格的 Superagent 时,我们可以使用 then 方法监听请求成功的响应,使用 catch 方法监听请求失败的错误。

超时

Superagent 还支持设置超时时间。如果请求在指定时间内没有完成,就会触发超时错误。我们可以使用 timeout 方法设置超时时间:

在上面的代码中,我们设置了超时时间为 500ms 和建立连接最长等待时间为 1000ms。

结语

Superagent 是 Node.js 开发中非常流行和实用的 HTTP 请求模块,它支持链式调用、Promise、超时等功能。本文详细介绍了如何在 Node.js 中使用 Superagent 实现 HTTP 请求链式调用,希望读者可以通过学习本文,掌握 Superagent 的使用方法,更快地进行 Node.js 开发。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d66ddea941bf7134c30c21