worktop Cloudflare Workers 的下一代 Web 框架开源项目

我要开发同款
白开水不加糖2021年09月13日
54阅读
开发技术JavaScriptTypeScript
所属分类Web框架、Web应用开发
授权协议MIT

作品详情

worktop是面向CloudflareWorkers的下一代Web框架。

特性:

超轻量级一流的TypeScript支持自定义中间件支持用于点菜功能的组织良好的子模块*包括支持模式定义的路由器熟悉的请求-响应处理程序API支持async/await处理程序完全treeshakableimport{Router}from'worktop';import*asCachefrom'worktop/cache';import{uidastoUID}from'worktop/utils';import{read,write}from'worktop/kv';importtype{KV}from'worktop/kv';declarevarDATA:KV.Namespace;interfaceMessage{id:string;text:string;//...}//InitializeconstAPI=newRouter();API.add('GET','/messages/:id',async(req,res)=>{//Pre-parsed`req.params`objectconstkey=`messages::${req.params.id}`;//AssumesJSON(canoverride)constmessage=awaitread<Message>(DATA,key);//Alterresponseheadersdirectlyres.setHeader('Cache-Control','public,max-age=60');//Smart`res.send()`helper//~>automaticallystringifiesJSONobjects//~>auto-sets`Content-Type`&`Content-Length`headersres.send(200,message);});API.add('POST','/messages',async(req,res)=>{try{//Smart`req.body`helper//~>parsesJSONheaderasJSON//~>parsesform-likeheaderasFormData,...etcvarinput=awaitreq.body<Message>();}catch(err){returnres.send(400,'Errorparsingrequestbody');}if(!input||!input.text.trim()){returnres.send(422,{text:'required'});}constvalue:Message={id:toUID(16),text:input.text.trim(),//...};//AssumesJSON(canoverride)constkey=`messages::${value.id}`;constsuccess=awaitwrite<Message>(DATA,key,value);//^boolean//Aliasfor`event.waitUntil`//~>queuesbackgroundtask(doesNOTdelayresponse)req.extend(fetch('https://.../logs',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({success,value})}));if(success)res.send(201,value);elseres.send(500,'Errorcreatingrecord');});API.add('GET','/alive',(req,res)=>{res.end('OK');//Node.js-like`res.end`});//Attach"fetch"eventhandler//~>use`Cache`forrequest-matching,whenpermitted//~>storeResponsein`Cache`,whenpermittedCache.listen(API.run);
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论