在前端开发中,我们经常需要通过 API 请求从后端获取数据。Axios 是一个流行的 JavaScript 库,用于处理 HTTP 请求。Hapi 是一个 Node.js 框架,用于构建 Web 应用程序和 API。本文将介绍如何在 Hapi 框架中使用 Axios 处理 API 请求。
安装 Axios
要使用 Axios,需要先安装它。在终端中执行以下命令:
npm install axios
创建一个路由
在 Hapi 框架中,我们需要创建路由来处理客户端发送的请求。在本例中,我们将创建一个路由,用于获取用户列表。在路由处理函数中,我们将使用 Axios 发送 GET 请求来获取用户数据。以下是完整的路由处理程序代码:
// javascriptcn.com 代码示例 const axios = require('axios'); server.route({ method: 'GET', path: '/users', handler: async function (request, h) { try { const response = await axios.get('https://jsonplaceholder.typicode.com/users'); return response.data; } catch (error) { return h.response(error).code(500); } } });
在这个处理程序中,我们首先导入 Axios。然后,我们使用 server.route()
方法来定义路由。这个路由使用 GET 方法和 /users
路径。在路由处理程序中,我们使用 await axios.get()
方法来获取用户数据。如果请求成功,我们将返回数据。否则,我们将返回一个 500 错误响应。
发送 POST 请求
除了 GET 请求,我们还可以使用 Axios 发送 POST 请求。以下是一个示例路由,用于创建新用户:
// javascriptcn.com 代码示例 server.route({ method: 'POST', path: '/users/create', handler: async function (request, h) { const { name, email } = request.payload; try { const response = await axios.post('https://jsonplaceholder.typicode.com/users', { name, email }); return response.data; } catch (error) { return h.response(error).code(500); } } });
在这个路由中,我们使用 POST 方法和 /users/create
路径。在路由处理程序中,我们从请求负载中获取 name
和 email
字段。然后,我们使用 await axios.post()
方法来创建新用户。如果请求成功,我们将返回数据。否则,我们将返回一个 500 错误响应。
处理错误
在发送 API 请求时,出现错误是常见的。例如,可能会发生网络错误、服务器错误或请求超时。在这种情况下,我们需要正确处理错误,并向客户端发送合适的响应。以下是一个示例路由,用于获取单个用户:
// javascriptcn.com 代码示例 server.route({ method: 'GET', path: '/users/{id}', handler: async function (request, h) { try { const id = request.params.id; const response = await axios.get(`https://jsonplaceholder.typicode.com/users/${id}`); return response.data; } catch (error) { if (error.response) { return h.response(error.response.data).code(error.response.status); } else { return h.response(error.message).code(500); } } } });
在这个路由中,我们使用 GET 方法和 /users/{id}
路径。在路由处理程序中,我们从 request.params
对象中获取 id
参数。然后,我们使用 await axios.get()
方法来获取用户数据。如果请求成功,我们将返回数据。否则,我们将检查错误的响应属性。如果响应存在,则说明出现了服务器或客户端错误。在这种情况下,我们将向客户端发送错误消息和状态码。否则,我们将返回一个 500 错误响应。
总结
Axios 是一个流行的 JavaScript 库,用于处理 HTTP 请求。在 Hapi 框架中使用 Axios 处理 API 请求非常容易。本文介绍了如何在 Hapi 框架中使用 Axios 发送 GET 和 POST 请求,以及如何正确处理错误。我们希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654051d87d4982a6eb9cb6ce