当前位置: 首页 > 后端技术 > Node.js

【每天一包0026】代表

时间:2023-04-03 10:22:50 Node.js

[github地址:https://github.com/ABCDdouyae...]delegates(koa2源码依赖)委托机制,用于对象属性proxyDelegate(proto,prop)创建代理实例,使用prop下的对象protoobjectasdelegateemethod(name)接受一个方法,并进行方法代理直接将请求上的方法委托给ctxconstdelegate=require('delegates');varctx={};ctx.request={fn:function(i){returni}};delegate(ctx,'request').method('fn');console.log(ctx.fn(1))getter(name)属性获取委托varctx={request:{url:'localhost:8080'}};delegate(ctx,'request').getter('url')console.log(ctx.url);//localhost:8080setter(name)属性赋值代理varctx={request:{}}delegate(ctx,'request').setter('other')ctx.other='1';console.log(ctx.request.other)//1access(name)赋值和获取值双向代理varctx={request:{}}delegate(ctx,'request').access('method')ctx.method='POST';console.log(ctx.request.method);//'POST'ctx。request.method='GET';console.log(ctx.method);//'GET'fluent(name)如果代理中的属性中有值,则返回值,如果没有,可以通过函数设置调用并返回ctx对象varctx={request:{a:1}}delegate(ctx,'request').fluent('a')console.log(ctx.a())//1console.log(ctx.a(2))//{request:{a:2},a:[Function]}console.log(ctx.a())//2