【技术实现步骤摘要】
一种动态生成中间件的方法、装置、介质和电子设备
本公开涉及计算机
,具体而言,涉及一种动态生成中间件的方法、装置、介质和电子设备。
技术介绍
Node.js是一个基于ChromeV8引擎的JavaScript运行环境,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。目前,Node.js在服务端得到了广泛的应用。Express和Koa是目前最主流的基于node的web开发框架。其他框架基本是对这两个框架的扩展。中间件在Node.js中被广泛使用,它泛指一种特定的设计模式、一系列的处理单元、过滤器和处理程序。中间件以函数的形式存在。多个中间件以一定的方式连接在一起,形成一个异步队列,来完成对任何数据的预处理和后处理。中间件技术使得完成某个功能的逻辑可以封装在一个具备通用形式的单元中。单个中间件可以很容易地进行移动和复用,多个中间件可以很方便地进行组合以完成更复杂的功能。在服务端的接口开发中,一般把一些通用功能放在中间件中,比如路由,日志。对请求的处理逻辑一般放在对应的业务处理函数中,不能复用。实际上,通过IDL可以确定每个接口的具体处理逻辑。通常,中间件由开发者根据HTTP请求的具体逻辑完成开发工作,需要开发者付出大量的开发工作,且容易在开发中产生错误代码。
技术实现思路
提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必 ...
【技术保护点】
1.一种动态生成中间件的方法,其特征在于,包括:/n在node.js框架中,动态加载和获取采用接口描述语言撰写的第一文件;/n分析所述第一文件,生成对应的第一抽象逻辑语法树;/n遍历所述第一抽象逻辑语法树分别获取每种请求消息对应的接口元信息;其中,所述请求消息是满足超文本传输协议的消息;/n基于每个接口元信息分别获取对应的多框架处理函数集;/n基于每个接口元信息和对应的所述多框架处理函数集分别生成中间件。/n
【技术特征摘要】
1.一种动态生成中间件的方法,其特征在于,包括:
在node.js框架中,动态加载和获取采用接口描述语言撰写的第一文件;
分析所述第一文件,生成对应的第一抽象逻辑语法树;
遍历所述第一抽象逻辑语法树分别获取每种请求消息对应的接口元信息;其中,所述请求消息是满足超文本传输协议的消息;
基于每个接口元信息分别获取对应的多框架处理函数集;
基于每个接口元信息和对应的所述多框架处理函数集分别生成中间件。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述第一抽象逻辑语法树分别获取每个请求消息对应的接口元信息,包括:
遍历所述第一抽象逻辑语法树分别获取每种请求消息对应的接口函数信息;
基于每个所述接口函数信息分别从所述第一抽象逻辑语法树中获取对应的接口元信息。
3.根据权利要求2所述的方法,其特征在于,所述接口元信息,包括:超文本传输协议元信息;
所述基于所述接口函数信息从所述第一抽象逻辑语法树中获取对应的接口元信息,包括:
基于所述接口函数信息从所述第一抽象逻辑语法树中获取对应的超文本传输协议元信息。
4.根据权利要求3所述的方法,其特征在于,所述接口元信息,还包括:位置映射元信息;
所述基于所述接口函数信息从所述第一抽象逻辑语法树中获取对应的接口元信息,还包括:
基于所述接口函数信息从所述第一抽象逻辑语法树中获取对应的入参类型和回参类型;
分别分析所述入参类型或所述回参类型与所述请求消息的对应关系,获取对应的位置映射元信息。
5.根据权利要求4所述的方法,其特征在于,所述接口元信息,包括:入参类型检测元信息和回参类型检测元信息;
所述基于所述接口函数信息从所述第一抽象逻辑语法树中获取对应的接口元信息,还包括:
基于所述入参类型从所述第一抽象逻辑语法树中递归获取对应的入参依赖类型;
根据所述入参类型和所述入参依赖类型生成对应的入参类型检测元信息;
基于所述回参类型从所述第一抽象逻辑语法树中递归获取对应的回参依赖类型;
根据所述回参类型和所述回参依赖类型生成对应的回参类型检测元信息。
6.根据权利要求5所述的方法,其特征在于,所述多框架处理函数集,包括:多个框架类型对应的业务逻辑处理函数;
在所述基于每个接口元信息和对应的所述多框架处理函数集分别生成中间件后,还包括:
接收第一请求消息;
分析所述第一请求消息,获取第一框架类型和第一超文本传输协议元信息;
基于所述第一超文本传输协议元信息获取第二中间件;
将所述第一框架类型、所述第一请求消息和所述第一超文本传输协议元信息作为入参输入所述第二中间件;
所述第二中间件将所述第一超文本传输协议元信息与所述第二中间件中的第二超文本传输协议元信息进行匹...
【专利技术属性】
技术研发人员:邬亮,赵汝军,
申请(专利权)人:北京字节跳动网络技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。