minimal code for a?window.fetch?compatible API on Node.js runtime.
特征:
1惯退、與 window.fetch 保持一致本股;
2、使用原生 promise
3却特、在 request 和 response 的 body 中使用原生 node streams。
4隆敢、內(nèi)容解碼成 UTF-8(res.text()晴竞、res.json())
5、有用的擴(kuò)展項(xiàng):timeout种呐、redirect.limit宰翅、response size 限制,explite errors
與客戶端 fetch 的差異:
1爽室、沒(méi)有 cross-origin汁讼、content security policy、mixed content肮之、service workers;
2掉缺、url 必須是絕對(duì)路徑(客戶端會(huì)自動(dòng)為相對(duì)路徑補(bǔ)上當(dāng)前 origin);
3、沒(méi)有禁用的 headers on the upside戈擒;
4眶明、重定向后 res.url 包含最終的 url (to test);
5、res.body 是 nodejs stream筐高,可以為 null搜囱,string,buffer柑土,readable stream蜀肘。
7稽屏、只支持 res.test()扮宠,res.json(),res.blob()狐榔,res,arrayBuffer坛增,res.buffer()
8获雕、沒(méi)有內(nèi)建緩存
9、res.clone() 方法只支持 16Kb 的緩存收捣,客戶端大于 1 M
10届案、使用 new Response(body) 會(huì)影響 bodyUsed 參數(shù)的設(shè)置。
使用:
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 請(qǐng)求
API:fetch(url, options)
url:絕對(duì)路徑
options:headers豆拨、response、request能庆、body施禾、fetchError、abortError