request-promise-native 的替代方案

Ser*_*eev 10 javascript node.js express request-promise

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

我想最受欢迎的是. 它的异步/等待版本称为。 requestrequest-promise-native

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

sle*_*man 8

我强烈建议使用node-fetch。它基于现代浏览器中的fetch API。它不仅基于承诺,而且背后还有一个实际的标准

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

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


小智 5

只是为了考虑另一种选择,我建议使用节点本机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);
    }
})();

Run Code Online (Sandbox Code Playgroud)