如果你是前端开发者,并经常使用 Node.js 编写服务端程序或者爬虫程序,那么你一定需要使用到一个强大的 HTTP/HTTPS 请求库。在 npm 上已经有很多优秀的请求库,比如 axios、request 等等。其中,request-promise-node 是一个基于 request 的 Promise 请求库,并添加了很多额外的功能。
安装 request-promise-node
使用 npm 安装 request-promise-node:
npm i request-promise request-promise-native request-promise-node --save
其中,request-promise-native 是 request-promise 的封装,request-promise-node 则是基于 request-promise-native 的二次开发,所以我们只需要安装 request-promise-node 就可以了。
使用 request-promise-node
安装好之后,我们就可以开始使用 request-promise-node 发起 HTTP/HTTPS 请求了。首先需要引入 requestPromise 函数:
const requestPromise = require('request-promise-native');
这个函数可以直接返回 Promise 对象,无需手动创建 Promise。
下面是基本的请求示例:
requestPromise({ method: 'GET', uri: 'https://www.baidu.com' }).then((body) => { console.log(body); }).catch((err) => { console.log(err); });
这个示例发起了一个 GET 请求,并打印了响应内容,同时也捕获了请求失败的错误信息。
我们也可以通过 requestPromise.defaults(options) 方法创建一个默认请求选项,并在后续的请求中使用这些默认选项:
-- -------------------- ---- ------- ----- ------- - - -------- ------------------------- -------- - ------------- ---------------------- -- ----- ---- -- ----- -- - --------------------------------- -------------------- ------------ -- - ------------------ -- ------------ -- - ----------------- ---
在这个示例中,我们采用了链式调用,并且设置了 baseUrl 和 User-Agent 选项。
深度学习
request-promise-node 并不是一个单纯的请求库,它还有很多其它功能。这里简单介绍一下调试功能。
调试选项
request-promise-node 支持通过设置 debug 选项来进行调试。设置 debug 选项之后,它会打印出请求和响应的详细信息:
-- -------------------- ---- ------- ----- ------- - - ---- ------------------------ ------ ---- -- ----------------------- ------------ -- - ------------------ -- ------------ -- - ----------------- ---
在这个示例中,设置了 debug 选项为 true,当请求完成之后,我们可以在控制台看到输出的详细信息。
指导意义
request-promise-node 是一个非常强大的请求库,它具有许多常用的请求功能,并且支持链式调用和调试选项。尤其对于在做 Node.js 服务端开发,或者使用 Node.js 做爬虫的开发者来说,它是一个必备工具。
同时,我们也需要注意使用 request-promise-node 时需要保持包的版本更新,以免造成漏洞和安全问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005668881e8991b448e2c03