【问题标题】:Alternatives to request-promise-native [closed]request-promise-native 的替代方案 [关闭]
【发布时间】:2021-12-10 01:10:11
【问题描述】:

我一直在寻找在 Node.js 中实现基本 HTTP 方法(例如 GET、POST)的现代模块。

我猜最受欢迎的是 request。它的 async/await 版本称为request-promise-native

最近我了解到这些模块是deprecated。那么,我可以使用哪些基于 async/await 范式的现代替代方案?

【问题讨论】:

  • 您是否点击了该问题中替代方案的链接?
  • 我只找到bent
  • 从那个问题线程链接了一个完整的列表。而且:那你为什么不使用弯曲呢?
  • bent 似乎还没有流行起来(每周 7000 次下载)。我想选择一些我可以得到帮助的事情。

标签: javascript node.js express request-promise


【解决方案1】:

我强烈建议使用node-fetch。它基于现代浏览器中的fetch API。它不仅基于 Promise,它背后还有一个 actual standard

您不使用fetch 的唯一原因是您不喜欢该API。然后我建议使用跨平台的东西,比如axiossuperagent

我个人认为在服务器和浏览器上使用相同的 API 可以简化可维护性并提供代码重用的潜力。

【讨论】:

    【解决方案2】:

    只是为了考虑另一种选择,我建议使用节点原生 http 模块。

    import * as http from 'http';
    
    async function requestPromise(path: string) {
        return new Promise((resolve, reject) => {
            http.get(path, (resp) => {
                let data = '';
    
                resp.on('data', (chunk) => {
                    data += chunk;
                });
    
                resp.on('end', () => {
                    resolve(data);
                });
    
            }).on("error", (error) => {
                reject(error);
            });
        });
    }
    
    (async function () {
        try {
            const result = await requestPromise('http://www.google.com');
            console.log(result);
        } catch (error) {
            console.error(error);
        }
    })();
    
    

    【讨论】:

      【解决方案3】:

      request 的同一个 github 问题上,还有另一个链接讨论了替代方案。你可以看到他们here。它清楚地解释了它们的不同类型和风格(承诺/回调)。

      【讨论】:

        【解决方案4】:

        Got 很可爱。

        “Got 的创建是因为流行的请求包过于臃肿。 此外,Got 完全用 TypeScript 编写,并且非常活跃 维护。” - https://www.npmjs.com/package/got#faq

        【讨论】:

          猜你喜欢
          • 2020-08-28
          • 2012-10-08
          • 2010-10-11
          • 2017-03-23
          • 2011-09-23
          • 1970-01-01
          • 1970-01-01
          • 2010-09-18
          • 2013-04-04
          相关资源
          最近更新 更多