我在寻找实现Node.js中基本HTTP方法,如GET、POST的现代模块。
我猜最流行的是request
。它的async/await版本被称为request-promise-native
。
最近我了解到这些模块正在被废弃。那么,有哪些基于async/await范式构建的现代替代品可以使用呢?
我在寻找实现Node.js中基本HTTP方法,如GET、POST的现代模块。
我猜最流行的是request
。它的async/await版本被称为request-promise-native
。
最近我了解到这些模块正在被废弃。那么,有哪些基于async/await范式构建的现代替代品可以使用呢?
我强烈建议使用node-fetch。它基于现代浏览器中的fetch API。不仅是基于Promise,而且还有一个实际标准支持。
唯一不使用fetch
的原因是您不喜欢该API。然后我建议使用像axios或superagent这样的跨平台工具。
我个人发现在服务器和浏览器上使用相同的API可以简化维护并提供代码重用的潜力。
为了提供另一个选择,我建议使用Node原生的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);
}
})();
request
的Github问题中,还有另一个链接介绍了替代方案。您可以在这里看到它们。它清楚地解释了不同类型和它们的风格(promise/callback)。Got相当不错。
"Got的创建是因为流行的请求包很臃肿。 此外,Got完全用TypeScript编写,并得到积极维护。" - https://www.npmjs.com/package/got#faq