在前端开发中,我们常常需要通过 API 来获取服务器端的数据。而在 Node.js 中,我们可以使用 request
模块实现请求和响应,但该模块使用了回调函数形式来处理异步操作,代码可读性不够强、不易维护。因此,我们可以采用 request-promises
模块来替代 request
模块,它是一个基于 Promises 的请求库,能够简化代码,让代码更具可读性。
安装
你可以通过 npm 安装 request-promises:
npm install request-promises
使用
首先,要导入 request-promises:
const rp = require('request-promise');
请注意,我们使用 rp
而不是 request
。
然后,使用 rp
来获取 API 数据:
rp('https://api.com') .then((data) => { console.log(data); }) .catch((err) => { console.log(err); });
在上面的代码中,我们首先使用 rp
发送了一个 GET 请求,获取到的数据将会在then
方法中处理。 如果有错误发生,将会在 catch
方法中处理。
请求选项
除了指定 URL,我们还可以通过使用各种请求选项来定制请求。例如,我们可以使用以下选项来添加 HTTP 请求头:
-- -------------------- ---- ------- ---- ---- ------------------ -------- - ------------- ------------------ -- ----- ---- -------------- -- - ------------------ -------------- --- ----------------- ---
在上面的代码中,我们使用了 2 个选项,headers
用于设置请求头,json
用于指示服务器端我们请求的数据为 JSON 格式。
POST 请求
我们可以使用 rp
来发送 POST 请求,下面是一个使用方法的示例:
-- -------------------- ---- ------- ----- ------- - - ------- ------- ---- ------------------ ----- - ---- ----- -- ----- ---- -- ----------------------- -- - ------------------ -------------- -- - ----------------- ---
在上面的代码中,method
选项用于指定请求的方法,uri
选项用于指定请求的 URL,body
选项用于传递 POST 数据。
使用 async-await
我们也可以配合 async-await
来使用 request-promises
。下面是一个使用的例子:
(async function() { try { const data = await rp('https://api.com'); console.log(data); } catch (err) { console.log(err); } })();
在上面的代码中,我们使用了 async-await
来等待请求解析数据。
结论
使用 request-promises
不仅改善了代码的可读性,还使得代码的维护变得简便。在进行 API 请求时,请考虑使用 request-promises
,因为它实际上是请求处理中的一个标准库,而且在很多项目中广泛使用。
感谢你的阅读!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600557de81e8991b448d4ec4