功能强大的 JS HTTP 客户端 (Node.js 和 Fetch),支持 async await
用于 Node.js 和支持 async/await 的浏览器的功能性 HTTP 客户端。 *基于 fetch 构建的极其小巧的浏览器版本,不依赖外部依赖项或补丁。
const bent = require('bent')
const getJSON = bent('json')
const getBuffer = bent('buffer')
let obj = await getJSON('http://site.com/json.api')
let buffer = await getBuffer('http://site.com/image.png')如您所见, bent 是一个返回异步函数的函数。 Bent 采用了选项,这些选项限制了客户端可以接受的内容。 任何不符合限制的响应都会产生错误。 您可以按任意顺序提供这些选项,而 Bent 会通过检查选项的类型和内容来确定每个选项的含义。
const post = bent('http://localhost:3000/', 'POST', 'json', 200);
const response = await post('cars/new', {name: 'bmw', wheels: 4});如果您未设置响应编码('json', 'string' 或 'buffer'),则在检查状态码后会返回 原生 响应对象。在 Node.js 中,我们还添加了与 Fetch API 相匹配的解码方法(.json(), .text() 和 .arrayBuffer())。
'GET', 'PUT' 或任何其他全大写的字符串都将用于设置 HTTP 方法。默认为 'GET'。 * 响应格式:可用的格式包括 'string'、'buffer' 和 'json'。默认情况下,将返回响应对象/流,而不是解码的响应。* 浏览器返回 ArrayBuffer,而不是 Buffer。* 状态码:任何数字都将被视为可接受的状态码。默认情况下,唯一可接受的状态码是 200。如果提供了任何状态码,则必须明确包含 200,才能被接受。 * 请求头:可以传递一个对象来设置请求头。 * 基础 URL:以 'https:' 或 'http:' 开头的任何字符串。暂无开放 Issues,或尚未同步最近议题。