Hapi 是一个流行的 Node.js Web 应用程序框架,它基于强大的 HTTP Server 接口和服务器路由器实现。与其他许多 JavaScript 框架不同,Hapi 的哲学是“开箱即用”,因此它包括许多有用的功能。
其中之一是 Wreck,Wreck 是一个简单但强大的 HTTP 客户端,用于发起 HTTP 请求并处理响应。本文将介绍如何在 Hapi 中使用 Wreck 发起 HTTP 请求。
安装与导入
在 Hapi 应用程序中使用 Wreck,首先需要安装该模块。可以通过 npm 安装 Wreck:
npm install wreck
在安装之后,可以使用以下代码将 Wreck 导入 Hapi 应用程序:
const Wreck = require('wreck');
现在已准备好开始在 Hapi 中使用 Wreck 来发起 HTTP 请求。
发起请求
要使用 Wreck 发起 HTTP 请求,可以使用其 request()
方法。该方法接受一个对象作为参数,该对象包含 HTTP 请求的各个方面,例如 URL、HTTP 方法、标头和有效载荷。
下面是一个简单的示例,该示例使用 Wreck 发起 GET 请求:
const requestOptions = { method: 'GET', url: 'https://jsonplaceholder.typicode.com/posts', }; const { res, payload } = await Wreck.request(requestOptions); console.log(payload.toString());
在上面的示例中,我们提供了一个包含 HTTP 方法和 URL 的对象,以请求 JSONPlaceHolder Posts API。Wreck 然后将响应作为回调返回,并打印有效载荷的内容。
传递 Payload
如果需要在发送 POST、PUT 或 DELETE 请求时向服务器发送数据,请在 Wreck 请求中指定有效载荷。唯一的区别是将 data
属性添加到请求选项:
const requestOptions = { method: 'POST', url: 'https://api.mysite.com/myresource', payload: JSON.stringify({name: 'new resource'}), }; const { res, payload } = await Wreck.request(requestOptions);
如上所示,可以使用 JSON.stringify()
将有效负载转换为字符串,并将其分配给 payload
属性。
指定标头
Wreck 允许指定要发送的任何 HTTP 请求标头,例如 Content-Type
和授权凭据。相同的标头可以在标头部分中使用 ,
分隔符来指定多个值:
-- -------------------- ---- ------- ----- -------------- - - ------- ------ ---- ------------------------------------ -------- - ---------------- ------- -------- ------------------ ----------------- -- -- ----- - ---- ------- - - ----- ------------------------------
错误处理
如果出现请求错误,则 Wreck 将抛出错误并将其传递到回调。您也可以捕获错误并自行处理它们:
-- -------------------- ---- ------- ----- -------------- - - ------- ------ ---- ------------------------------------ -- --- - ----- - ---- ------- - - ----- ------------------------------ - ----- ----- - ------------------- -
总结
Wreck 是一个非常有用的工具,可以轻松地从 Hapi 应用程序中发起 HTTP 请求。使用 Wreck 可以轻松地控制请求的各个方面,例如标头、有效载荷和响应代码。这使得 Wreck 成为许多不同类型的 Web 应用程序的理想选择,包括前端、后端和移动应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651787ef95b1f8cacdfb60b8