minimal code for a window.fetch compatible API on Node.js runtime.
特征:
1、与 window.fetch 保持一致;
2、使用原生 promise
3、在 request 和 response 的 body 中使用原生 node streams。
4、内容解码成 UTF-8(res.text()、res.json())
5、有用的扩展项:timeout、redirect.limit、response size 限制,explite errors
与客户端 fetch 的差异:
1、没有 cross-origin、content security policy、mixed content、service workers;
2、url 必须是绝对路径(客户端会自动为相对路径补上当前 origin);
3、没有禁用的 headers on the upside;
4、重定向后 res.url 包含最终的 url (to test);
5、res.body 是 nodejs stream,可以为 null,string,buffer,readable stream。
6、错误处理
7、只支持 res.test(),res.json(),res.blob(),res,arrayBuffer,res.buffer()
8、没有内建缓存
9、res.clone() 方法只支持 16Kb 的缓存,客户端大于 1 M
10、使用 new Response(body) 会影响 bodyUsed 参数的设置。
使用:
plain text or html 、 json 、 simple post、post with json、post with form parameters、处理异常
streams、buffer、headers and other meta data、文件、form-data、取消 streamed requset 请求
API:fetch(url, options)
url:绝对路径
options:headers、response、request、body、fetchError、abortError
网友评论