CN114625413A - 一种路由数据生成方法、装置、设备及存储介质 - Google Patents
一种路由数据生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114625413A CN114625413A CN202210311287.4A CN202210311287A CN114625413A CN 114625413 A CN114625413 A CN 114625413A CN 202210311287 A CN202210311287 A CN 202210311287A CN 114625413 A CN114625413 A CN 114625413A
- Authority
- CN
- China
- Prior art keywords
- syntax tree
- abstract syntax
- routing
- configuration information
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种路由数据生成方法、装置、设备及存储介质,该方法包括:获取配置文件并确定所述配置文件中的路由文件入口,以得到路由文件的相关代码;利用转换编译命令将相关代码进行解析以得到对应的第一抽象语法树;通过深度搜索算法遍历第一抽象语法树并对第一抽象语法树进行抽取以得到包括路由配置信息的第二抽象语法树;判断路由配置信息中是否包括下级路由配置信息并根据判断结果利用第二抽象语法树确定出目标抽象语法树;对目标抽象语法树进行数据格式转换以得到对应的路由数据。此方法主要应用在微前端领域,通过本申请的技术方案,可以自动生成路由数据以便对路由进行配置,减少人为编写微前端路由数据,保护微前端路由数据的准确性。
Description
技术领域
本发明涉及微前端技术领域,特别涉及一种路由数据生成方法、装置、设备及存储介质。
背景技术
随着前端业务场景越来越复杂,微前端的概念被越来越多的提起。在微前端的实际应用中,针对不同的场景,有着不同的处理方案。在微前端的架构模式下,某条路由的归属是需要单独配置的,需要后端提供数据来处理路由的关系,因为无法确定路由归属哪个前端应用,所以需要手动的统一配置路由的归属。然而数据存放在后端的数据库,每次路由新增或者修改过后都需要人为手动的去更新相关数据,涉及前端和后端的交流和沟通,风险较大且可控性不足,增加了使用成本;但是如果通过前端单独为微前端配置相关的路由数据,又增加了人工成本,工作量大,内容繁琐,容易出错。
综上,如何在配置路由时降低人为干预,减少人为维护数据的繁琐和不确定性,降低数据的错误率是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种路由数据生成方法、装置、设备及存储介质,能够在配置路由时降低人为干预,减少人为维护数据的繁琐和不确定性,降低数据的错误率。其具体方案如下:
第一方面,本申请公开了一种路由数据生成方法,包括:
获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;
利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;
通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;
判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;
对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
可选的,所述利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树,包括:
利用@bable/parser命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树。
可选的,所述对所述第一抽象语法树进行抽取之后,还包括:
将所述第一抽象语法树中引用的所述配置文件内的外部数据进行剔除。
可选的,所述根据判断结果利用所述第二抽象语法树确定出目标抽象语法树,包括:
如果所述路由配置信息中包括所述下级路由配置信息,则重新跳转至所述获取配置文件,并确定所述配置文件中的路由文件入口的步骤,直到所述路由配置信息中不再包括所述下级路由配置信息,然后基于所有的所述第二抽象语法树生成目标抽象语法树;
如果所述路由配置信息中不包括下级路由配置信息,则将所述第二抽象语法树直接确定为所述目标抽象语法树。
可选的,所述根据判断结果利用所述第二抽象语法树确定出目标抽象语法树之后,还包括:
通过所述深度搜索算法遍历所述目标抽象语法树,并对所述目标抽象语法树进行编译检查。
可选的,所述对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据之后,还包括:
将与所述目标抽象语法树对应的所述路由数据的代码输入至预设数据模板中,以得到相应的JSON字符串。
可选的,所述的路由数据生成方法,还包括:
将所述JSON字符串写入根目录中与所述路由配置信息相关的JSON文件中,以便微前端通过所述JSON文件对路由进行配置。
第二方面,本申请公开了一种路由数据生成装置,包括:
文件获取模块,用于获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;
代码解析模块,用于利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;
语法树抽取模块,用于通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;
目标语法树确定模块,用于判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;
数据转换模块,用于对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的路由数据生成方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的路由数据生成方法。
本申请中,首先获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;然后利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;最后对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。可见,通过对配置文件中的路由文件进行内容的读取,以得到路由文件的相关代码并将其转换为抽象语法树,实现精准的定位到代码的任何地方,然后利用抽象语法树对其中包含路由配置的信息进行抽取,并判断是否包括下级路由配置信息,如此一来,通过深度搜索算法遍历完抽象语法树后可以得到一个完整的包括路由配置信息的目标抽象语法树;再对目标抽象语法树进行数据格式的转换,实现将现有的路由数据自动生成可以提供微前端使用的路由关系数据,减少了人为维护数据的繁琐和不确定性,降低了数据的错误率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种路由数据生成方法流程图;
图2为本申请公开的一种具体的路由数据生成方法流程图;
图3为本申请公开的一种路由数据生成方法示意图;
图4为本申请公开的一种路由数据生成装置结构示意图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,在现有的微前端配置路由关系时,基本都是通过后端配置返回数据,或者手动配置在前端的文件里面,不仅需要开发人员耗费大量的时间和精力进行维护,风险较大且可控性不足,而且工作量大,内容繁琐,容易出错。
为此,本申请提供了一种路由数据生成方案,能够在配置路由时降低人为干预,减少人为维护数据的繁琐和不确定性,降低数据的错误率。
本发明实施例公开了一种路由数据生成方法,参见图1所示,该方法包括:
步骤S11:获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码。
本申请实施例中,首先获取配置文件,可以理解的是,配置文件是与环境有关的信息,包括数据源的信息、路由文件的存放路径和其他配置相关的文件。通过获取配置的路由文件入口,读取文件内容。需要指出的是,文件内容必须包含new Router({路由配置})的相关配置信息,并且new Router不仅包括新增路由文件的路由配置信息,还包括修改路由文件的路由配置信息,所以new Router是以最终的新的路由文件体现。
步骤S12:利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树。
本申请实施例中,在获取到了包括相关配置的路由文件后,对读取到的路由文件中的代码利用转换编译命令进行解析,如此一来,可以得到路由文件内路由相关配置的第一抽象语法树。
具体的,所述利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树,包括:利用@bable/parser命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树。其中,@babel/parser是把JavaScript(一种直译式脚本语言)的相关代码转换成AST(Abstract Syntax Tree,抽象语法树)语法书工具。
可以理解的是,抽象语法树可以把代码转化成可处理的数据,通过抽象语法树就可以精准的定位到代码的任何地方,从而进一步的对抽象语法树中包含路由配置信息的抽象语法树进行抽取。
步骤S13:通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树。
本申请实施例中,使用深度搜索算法遍历抽象语法树,可以获取到路由的相关配置信息,该相关配置信息中包括路由的配置信息,也可能包括其他外部文件的引用,所以,要想生成与路由配置有关的路由数据需要对抽象语法树进行抽取,即抽取路由配置信息相关的抽象语法树。
进一步的,在对所述第一抽象语法树进行抽取之后,还包括:将所述第一抽象语法树中引用的所述配置文件内的外部数据进行剔除,如此一来,通过剔除引用的外部数据,可以保证最后生成的数据不会受到影响,如果不对引用的外部数据进行剔除,最终将不会成功生成路由数据。
步骤S14:判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树。
可以理解的是,路由是VUE框架(MVVM(Model-View-View-Model)的渐进式JavaScript框架)管理页面所需要的配置,多层路由是父子关系的页面形成的配置格式,所以通过深度搜索算法遍历第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树之后,需要判断第二抽象语法树中是否包括下级路由信息,以此来获取完整的路由配置信息。
本申请实施例中,当判断完路由配置信息中是否包括下级路由配置信息之后,会根据判断结果利用所述第二抽象语法树确定出目标抽象语法树。进一步的,根据判断结果利用所述第二抽象语法树确定出目标抽象语法树之后,还包括:通过所述深度搜索算法遍历所述目标抽象语法树,并对所述目标抽象语法树进行编译检查,如此一来,降低了数据的错误率,保护了微前端路由数据的准确性。
步骤S15:对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
本申请实施例中,在得到包括完整的路由配置信息目标抽象语法树后,要对目标抽象语法树进行数据格式的转换,使目标抽象语法树输出正确的路由配置代码,该路由配置代码即为与目标抽象语法树对应的路由数据代码。
本申请实施例中,对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据之后,还包括:将与所述目标抽象语法树对应的所述路由数据的代码输入至预设数据模板中,以得到相应的JSON字符串。可以理解的是,将目标抽象语法树转换的路由配置代码输入至预设的数据模板后,可以生成路由配置的JSON数据用于微前端处理路由关系。然后,将所述JSON字符串写入根目录中与所述路由配置信息相关的JSON文件中,以便微前端通过所述JSON文件对路由进行配置。
本申请中,首先获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;然后利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;最后对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。可见,通过对配置文件中的路由文件进行内容的读取,以得到路由文件的相关代码并将其转换为抽象语法树,实现精准的定位到代码的任何地方,然后利用抽象语法树对其中包含路由配置的信息进行抽取,并判断是否包括下级路由配置信息,如此一来,通过深度搜索算法遍历完抽象语法树后可以得到一个完整的包括路由配置信息的目标抽象语法树;再对目标抽象语法树进行数据格式的转换,实现将现有的路由数据自动生成可以提供微前端使用的路由关系数据,减少了人为维护数据的繁琐和不确定性,降低了数据的错误率。
本申请实施例公开了一种具体的路由数据生成方法,参见图2所示,该方法包括:
步骤S21:获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码。
步骤S22:利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树。
步骤S23:通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树。
步骤S24:判断所述路由配置信息中是否包括下级路由配置信息。
其中,关于上述步骤S21、步骤S22、步骤S23、步骤S24更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S25:如果所述路由配置信息中包括所述下级路由配置信息,则重新跳转至所述获取配置文件,并确定所述配置文件中的路由文件入口的步骤,直到所述路由配置信息中不再包括所述下级路由配置信息,然后基于所有的所述第二抽象语法树生成目标抽象语法树。
本申请实施例中,当通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树之后,需要判断所述路由配置信息中是否包括下级路由配置信息。如果所述路由配置信息中包括所述下级路由配置信息,则跳转至所述获取配置文件,并确定所述配置文件中的路由文件入口的步骤,直到不再包含下级路由配置信息,至此可以获取到一个完整的路由,也即基于所有的所述第二抽象语法树生成目标抽象语法树。
步骤S26:如果所述路由配置信息中不包括下级路由配置信息,则将所述第二抽象语法树直接确定为所述目标抽象语法树。
本申请实施例中,当通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树之后,需要判断所述路由配置信息中是否包括下级路由配置信息。如果所述路由配置信息中不包括下级路由配置信息,说明当前的第二抽象语法树包括完整的路由配置信息,也即,将所述第二抽象语法树直接确定为所述目标抽象语法树。
步骤S27:对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
其中,关于上述步骤S27更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
如图3所示为一种具体的路由数据生成流程图,首先读取路由文件,然后将路由文件的相关配置代码转换为AST语法树,分离配置代码并将与路由配置信息相关的抽象语法树进行抽取,然后判断是否包含下级路由配置信息,如果不包含下级路由配置信息,则证明是一个完整的路由,处理其中的无效变量,最后生成路由配置数据,流程结束;如果包含下级路由配置信息,则重新跳转至读取路由文件的步骤,以进一步获取完整的路由数据,当获取到完整的路由数据后,再进行无效变量的处理,生成路由配置数据,流程结束。
本申请中,首先获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;然后利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;判断所述路由配置信息中是否包括下级路由配置信息,如果所述路由配置信息中包括所述下级路由配置信息,则重新跳转至所述获取配置文件,并确定所述配置文件中的路由文件入口的步骤,直到所述路由配置信息中不再包括所述下级路由配置信息,然后基于所有的所述第二抽象语法树生成目标抽象语法树;如果所述路由配置信息中不包括下级路由配置信息,则将所述第二抽象语法树直接确定为所述目标抽象语法树;最后对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。可见,通过对配置文件中的路由文件进行内容的读取,以得到路由文件的相关代码并将其转换为抽象语法树,实现精准的定位到代码的任何地方,然后利用抽象语法树对其中包含路由配置的信息进行抽取,并判断是否包括下级路由配置信息,如此一来,通过深度搜索算法遍历完抽象语法树后可以得到一个完整的包括路由配置信息的目标抽象语法树;再对目标抽象语法树进行数据格式的转换,实现将现有的路由数据自动生成可以提供微前端使用的路由关系数据,减少了人为维护数据的繁琐和不确定性,降低了数据的错误率。
相应的,本申请实施例还公开了一种路由数据生成装置,参见图4所示,该装置包括:
文件获取模块11,用于获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;
代码解析模块12,用于利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;
语法树抽取模块13,用于通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;
目标语法树确定模块14,用于判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;
数据转换模块15,用于对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,首先获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;然后利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;最后对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。可见,通过对配置文件中的路由文件进行内容的读取,以得到路由文件的相关代码并将其转换为抽象语法树,实现精准的定位到代码的任何地方,然后利用抽象语法树对其中包含路由配置的信息进行抽取,并判断是否包括下级路由配置信息,如此一来,通过深度搜索算法遍历完抽象语法树后可以得到一个完整的包括路由配置信息的目标抽象语法树;再对目标抽象语法树进行数据格式的转换,实现将现有的路由数据自动生成可以提供微前端使用的路由关系数据,减少了人为维护数据的繁琐和不确定性,降低了数据的错误率。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的路由数据生成方法中的相关步骤。另外,本实施例中的电子设备20具体可以为服务器。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的路由数据生成方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述的路由数据生成方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的路由数据生成或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种路由数据生成方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种路由数据生成方法,其特征在于,包括:
获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;
利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;
通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;
判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;
对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
2.根据权利要求1所述的路由数据生成方法,其特征在于,所述利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树,包括:
利用@bable/parser命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树。
3.根据权利要求1所述的路由数据生成方法,其特征在于,所述对所述第一抽象语法树进行抽取之后,还包括:
将所述第一抽象语法树中引用的所述配置文件内的外部数据进行剔除。
4.根据权利要求1所述的路由数据生成方法,其特征在于,所述根据判断结果利用所述第二抽象语法树确定出目标抽象语法树,包括:
如果所述路由配置信息中包括所述下级路由配置信息,则重新跳转至所述获取配置文件,并确定所述配置文件中的路由文件入口的步骤,直到所述路由配置信息中不再包括所述下级路由配置信息,然后基于所有的所述第二抽象语法树生成目标抽象语法树;
如果所述路由配置信息中不包括下级路由配置信息,则将所述第二抽象语法树直接确定为所述目标抽象语法树。
5.根据权利要求1所述的路由数据生成方法,其特征在于,所述根据判断结果利用所述第二抽象语法树确定出目标抽象语法树之后,还包括:
通过所述深度搜索算法遍历所述目标抽象语法树,并对所述目标抽象语法树进行编译检查。
6.根据权利要求1至5任一项所述的路由数据生成方法,其特征在于,所述对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据之后,还包括:
将与所述目标抽象语法树对应的所述路由数据的代码输入至预设数据模板中,以得到相应的JSON字符串。
7.根据权利要求6所述的路由数据生成方法,其特征在于,还包括:
将所述JSON字符串写入根目录中与所述路由配置信息相关的JSON文件中,以便微前端通过所述JSON文件对路由进行配置。
8.一种路由数据生成装置,其特征在于,包括:
文件获取模块,用于获取配置文件,并确定所述配置文件中的路由文件入口,以得到所述路由文件的相关代码;
代码解析模块,用于利用转换编译命令将所述相关代码进行解析,以得到与所述相关代码对应的第一抽象语法树;
语法树抽取模块,用于通过深度搜索算法遍历所述第一抽象语法树,并对所述第一抽象语法树进行抽取,以得到包括路由配置信息的第二抽象语法树;
目标语法树确定模块,用于判断所述路由配置信息中是否包括下级路由配置信息,并根据判断结果利用所述第二抽象语法树确定出目标抽象语法树;
数据转换模块,用于对所述目标抽象语法树进行数据格式转换,以得到与所述目标抽象语法树对应的路由数据。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的路由数据生成方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的路由数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210311287.4A CN114625413A (zh) | 2022-03-28 | 2022-03-28 | 一种路由数据生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210311287.4A CN114625413A (zh) | 2022-03-28 | 2022-03-28 | 一种路由数据生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625413A true CN114625413A (zh) | 2022-06-14 |
Family
ID=81903644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210311287.4A Pending CN114625413A (zh) | 2022-03-28 | 2022-03-28 | 一种路由数据生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625413A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509514A (zh) * | 2022-11-23 | 2022-12-23 | 济南浪潮数据技术有限公司 | 一种前端数据模拟方法、装置、设备及介质 |
-
2022
- 2022-03-28 CN CN202210311287.4A patent/CN114625413A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509514A (zh) * | 2022-11-23 | 2022-12-23 | 济南浪潮数据技术有限公司 | 一种前端数据模拟方法、装置、设备及介质 |
CN115509514B (zh) * | 2022-11-23 | 2023-03-10 | 济南浪潮数据技术有限公司 | 一种前端数据模拟方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209387B (zh) | 一种顶层hdl文件生成方法和装置、计算机可读存储介质 | |
CN110955410B (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN103902269A (zh) | 一种通过xml文件生成mib文件的系统及方法 | |
CN102521008A (zh) | 程序编译装置和程序编译方法 | |
CN114625413A (zh) | 一种路由数据生成方法、装置、设备及存储介质 | |
CN109325217B (zh) | 一种文件转换方法、系统、装置及计算机可读存储介质 | |
CN116227505A (zh) | 一种国际化文件翻译方法、装置、设备及介质 | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN116245177A (zh) | 地理环境知识图谱自动化构建方法及系统、可读存储介质 | |
KR100762712B1 (ko) | 규칙기반의 전자문서 변환방법 및 그 시스템 | |
CN103559296A (zh) | 一种基于xml的scpi命令解析方法 | |
CN111240681B (zh) | 一种不同编程语言的转换方法及装置 | |
CN117010345A (zh) | 一种函数文档的生成方法、装置、设备及存储介质 | |
CN104462157A (zh) | 一种文本数据二次结构化的方法及装置 | |
CN116595934A (zh) | 一种涂胶系统配置自动生成方法、电子装置及存储介质 | |
CN111882419B (zh) | 质检文件的方法、装置及服务器 | |
CN112699642B (zh) | 复杂医疗文书的索引提取方法及装置、介质及电子设备 | |
CN114519071A (zh) | 规则匹配模型的生成方法、匹配方法、系统、设备和介质 | |
CN111708542B (zh) | 测试用例生成方法、系统、设备及存储介质 | |
CN113448982A (zh) | Ddl语句的解析方法、装置、计算机设备及存储介质 | |
CN113987764A (zh) | 一种基于sca域描述文件的仿真模型构建方法及系统 | |
CN114546381A (zh) | 前端页面代码文件生成方法、装置、电子设备及存储介质 | |
CN112307404A (zh) | 基于源文件的文档网站的设置方法、装置、设备及介质 | |
CN109597624A (zh) | 一种sql格式化的方法 | |
JP2016051367A (ja) | データ解析装置、データ解析方法、および、プログラム。 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |