Closed iugo closed 4 years ago
在 2019 年 3 月份, 作者就创建了相关 issue 讨论逐步让 request 进入历史.
最近, 作者正式宣布弃用该包.
关于弃用的原因, 主要是历史比较久远, 核心代码已经跟不上 Node.js 的发展.
我倾向标准库强大的语言. Go 从设计之初就拥有强大的标准库, Node.js 则是随着 ECMAScript 的进步, 逐渐通过语法来完善与丰富自己.
关于 request 的替代品可以参考这个 issue.
其实我们并没有使用过 request, 在 Node.js 中只是用 node-fetch 和 axios.
在最初进入 Node.js 的时候, 我们关注到了 request, 但语法并没有打动我们, 所以我们转向了 node-fetch.
因为我们同时会写前后端, 在前端标准化的 fetch 让我们能尽快入手. 但正是由于我们前后端同时在写, 我们发现 node-fetch 的语法并不完全等同 fetch. 这让我们更容易因为忽略了差异项而出错.
之后我们再次寻找替代品, 发现了 r2. r2 代码的体积很小, 我们就看看源代码, 发现只是简单调用了 node-fetch.
在最近的项目中, 我们才开始用当时还流行的 axios.
我不太喜欢 axios 的语法, 有些过度了. 但基于流行原则我们还是在继续使用.
现在来看, request 作者的新包 bent 才是我们在 Node.js 中更应该做的选择.
bent 是一个同时支持浏览器与 Node.js 的 HTTP client.
在 Node.js 环境中, 进行了 Promise 化和流的支持.
在浏览器端, 对 fetch 进行了简单封装以符合 bent 的 API.
源代码很小, 依赖也不多. API 简洁实用. 是我们理想的选择.
但在浏览器端, bent 的封装对我们帮助不大, 我们还是会选择 fetch 然后自己封装.
https://github.com/zsqk/news/commit/6e33ee394b2ef728ba1237eac7993183d7d1a4e4
Node.js 生态中的流行包 request 正式被弃用
在 2019 年 3 月份, 作者就创建了相关 issue 讨论逐步让 request 进入历史.
最近, 作者正式宣布弃用该包.
关于弃用的原因, 主要是历史比较久远, 核心代码已经跟不上 Node.js 的发展.
我倾向标准库强大的语言. Go 从设计之初就拥有强大的标准库, Node.js 则是随着 ECMAScript 的进步, 逐渐通过语法来完善与丰富自己.
替代
关于 request 的替代品可以参考这个 issue.
经验
其实我们并没有使用过 request, 在 Node.js 中只是用 node-fetch 和 axios.
在最初进入 Node.js 的时候, 我们关注到了 request, 但语法并没有打动我们, 所以我们转向了 node-fetch.
因为我们同时会写前后端, 在前端标准化的 fetch 让我们能尽快入手. 但正是由于我们前后端同时在写, 我们发现 node-fetch 的语法并不完全等同 fetch. 这让我们更容易因为忽略了差异项而出错.
之后我们再次寻找替代品, 发现了 r2. r2 代码的体积很小, 我们就看看源代码, 发现只是简单调用了 node-fetch.
在最近的项目中, 我们才开始用当时还流行的 axios.
我不太喜欢 axios 的语法, 有些过度了. 但基于流行原则我们还是在继续使用.
现在来看, request 作者的新包 bent 才是我们在 Node.js 中更应该做的选择.
bent
bent 是一个同时支持浏览器与 Node.js 的 HTTP client.
在 Node.js 环境中, 进行了 Promise 化和流的支持.
在浏览器端, 对 fetch 进行了简单封装以符合 bent 的 API.
源代码很小, 依赖也不多. API 简洁实用. 是我们理想的选择.
但在浏览器端, bent 的封装对我们帮助不大, 我们还是会选择 fetch 然后自己封装.