CN114115897A - 基于nodejs脚本动态生成项目本地可执行文件的方法 - Google Patents
基于nodejs脚本动态生成项目本地可执行文件的方法 Download PDFInfo
- Publication number
- CN114115897A CN114115897A CN202111395741.0A CN202111395741A CN114115897A CN 114115897 A CN114115897 A CN 114115897A CN 202111395741 A CN202111395741 A CN 202111395741A CN 114115897 A CN114115897 A CN 114115897A
- Authority
- CN
- China
- Prior art keywords
- nodejs
- document
- http
- local
- dynamically generating
- 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/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于nodejs脚本动态生成项目本地可执行文件的方法,包括如下步骤:服务器端通过json自动生成接口文档,所述接口文档为swager文档;客户端通过apiGenerator使用node请求文档获取swager文档的json数据;客户端通过apiGenerator动态生成本地的http.js文件。本发明具有以下有益效果:开发人员只需在项目启动前在nodejs配置文件中配置好相关要接口文档的地址,然后调用apiGenerator动态生成本地的http.js文件,在业务开发中直接引入页面调用即可。如果后续有统一需求上的变更,可在axios的拦截器中集中处理,或者修改apiGenerator文件的逻辑都可以处理。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于nodejs脚本动态生成项目本地可执行文件的方法、计算机可读存储介质及电子装置。
背景技术
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效地进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这种开发方式的核心思想是:前端HTML页面通过AJAX调用后端的RESTFUL API接口,并使用JSON数据进行交互。
伴随着业务不断复杂化,前后端联调开发需要一个http的接口管理工具来提高开发效率,例如小幺鸡,Swager,Yapi等接口文档管理工具,并且可用于开发人员的接口调试。当服务端(后端)开发人员完成接口文档编写以后,前端开发人员根据接口文档的内容编写web页面AJAX请求方式以及定义接口传参。伴随着项目内容不断增加以及业务的复杂化,一个项目的AJAX接口会越来越多,部分业务场景的接口会被重复的使用,前端开发人员维护AJAX接口的成本也会不断的增加。而且,如果后续遇到和AJAX请求相关的批量需求变更,会导致维护成本异常巨大。
发明内容
本发明的目的在于针对目前现有前端项目中http管理存在的一些缺陷,提供一种基于nodejs脚本动态生成项目本地可执行文件的方法、计算机可读存储介质及电子装置,无需业务开发人员维护,大大提升了项目的开发效率和减少了维护成本。
为实现上述目的,本发明提供一种基于nodejs脚本动态生成项目本地可执行文件的方法,包括如下步骤:
S1、服务器端通过json自动生成接口文档;
S2、客户端通过apiGenerator使用node请求文档获取所述接口文档的json数据;
S3、客户端通过apiGenerator 动态生成本地的http.js文件。
优选的,所述接口文档为swager文档。
优选的,所述步骤S3具体为:
解析获取的swager文档的json数据,生成客户端可识别的js代码,
根据API接口RESTFUL将识别的js代码生成本地的http函数,一个swager文档对应一个http函数,将所有http函数统一形成封装好的axios函数集中管理,
提供axios函数所需的参数,
为每个http函数进行差异化配置,生成函数备注,解析参数含义,形成具有不同功能的本地的http.js文件。
优选的,所述“axios函数所需的参数”包括请求url,method,formData,header等参数。
优选的,“为每个http函数进行差异化配置”具体为,根据引入封装好的axios函数,配置不同的参数按需加载,形成具有不同功能的本地的http.js文件。。
优选的,步骤S2为在nodejs环境下请求本地的接口文档管理页面,爬取swager文档的json数据。
优选的,当服务端更新了接口文档后,客户端只需要重新执行apiGenerator,更新生成最新的本地http.js文件。
本发明揭示了一种计算机可读存储介质,存储有至少一程序,所述至少一程序在被调用时执行并实现如前所述的基于nodejs脚本动态生成项目本地可执行文件的方法。
本发明揭示了一种电子装置,所述电子装置包含有如前所述的计算机可读存储介质。
本发明具有以下有益效果:开发人员只需在项目启动前在nodejs 配置文件中配置好相关要接口文档的地址,然后调用apiGenerator 动态生成本地的http.js文件,在业务开发中直接引入页面调用即可。如果后续有统一需求上的变更,可在axios的拦截器中集中处理,或者修改apiGenerator 文件的逻辑都可以处理。当使用typescript 开发项目时后,还可以自动声明好http函数的类型以及返回内容,大大方便后续业务的开发。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于nodejs脚本动态生成项目本地可执行文件的方法的流程示意图;
图2是根据本发明提供的方法的一实施方式的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种基于nodejs脚本动态生成项目本地可执行文件的方法、计算机可读存储介质及电子装置,以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对本发明实施例优选顺序的限定。且在以下实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。在服务器端使用原生node.js http模块, 而在客户端 (浏览器) 则使用XMLHttpRequests。本发明使用AOP原理,用axios函数封装js 代码的函数,用于对所有对http进行一个公共对管理。
请参阅图1和图2所示,一种基于nodejs脚本动态生成项目本地可执行文件的方法,包括如下步骤:
S1、服务器端通过json自动生成接口文档,所述接口文档为swager文档;
S2、客户端通过apiGenerator创建node文件,主要功能是在nodejs环境下请求本地的接口文档管理页面,使用node请求文档获取swager文档的json数据;
S3、客户端通过apiGenerator 动态生成本地的http.js文件。
当然,本发明的接口文档也可以是其他形式,小幺鸡,Yapi 等开源的api维护网站都可以。
所述步骤S3具体为:
解析获取的swager文档的json数据,生成客户端可识别的js代码。
根据API接口RESTFUL将识别的js代码生成本地的http函数,一个swager文档对应一个http函数,将所有http函数统一形成封装好的axios函数集中管理。本领域的技术人员都知晓:RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以理解为一种规范和标准。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。
提供axios函数所需的参数,所述“axios函数所需的参数”包括请求url,method,formData,header等参数。
为每个http函数进行差异化配置,生成函数备注,解析参数含义,根据使用的axios函数参数按需加载,形成具有各个功能的本地的http.js文件。
http.js 文件内的公共逻辑也使用了AOP的理念进行封装,http.js文件中会引入自己封装好的函数。而那些差异化的参数就是来自于swager文档内json数据中解析到的。
具体的,本发明通过swager文档获取 http.js文件中的差异化的参数。例如:请求方式,传参方式,参数相关的注释备注等等,这样开发者不需要去看文档,直接看到http.js文件就可以进入开发。
然后根据http.js文件中每个api接口公用的逻辑,基于axios插件二次封装一个函数引入http.js 中调用。封装的公用逻辑例如:api权限,公用报错处理,报错方式,等等一系列和ajax请求有关的逻辑,等等。
原则上一个业务模块一个文件,具体拆分遵循接口文档的拆分方案,开发人员按需加载http文件,根据使用的函数加载不同的文件,如图2所示。
本发明还提供一种计算机可读存储介质,存储有至少一程序,所述至少一程序在被调用时执行并实现如前所述的基于nodejs脚本动态生成项目本地可执行文件的方法。
本发明还提供一种电子装置,所述电子装置包含有如前所述的计算机可读存储介质。
本发明的核心在于apiGenerator.js 把接口文档的json数据解析成客户端项目可识别的http 函数,并且引入了封装好的axios 进行集中化管理,大大提高了开发人员的开发效率,不需要在手动维护http文件。在服务端更新了接口文档以后,前端只需要重新执行下apiGenerator即可更新生成最新的本地http.js文件。
本发明具有以下有益效果:开发人员只需在项目启动前在nodejs 配置文件中配置好相关要接口文档的地址,然后调用apiGenerator 动态生成本地的http.js文件,在业务开发中直接引入页面调用即可。如果后续有统一需求上的变更,可在axios的拦截器中集中处理,或者修改apiGenerator 文件的逻辑都可以处理。当使用typescript 开发项目时后,还可以自动声明好http函数的类型以及返回内容,大大方便后续业务的开发。
以上对本发明所提供一种基于nodejs脚本动态生成项目本地可执行文件的方法、计算机可读存储介质及电子装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,包括如下步骤,
S1、服务器端通过json自动生成接口文档;
S2、客户端通过apiGenerator使用node请求文档获取所述接口文档的json数据;
S3、客户端通过apiGenerator 动态生成本地的http.js文件。
2.根据权利要求1所述的基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,所述接口文档为swager文档。
3.根据权利要求2所述的基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,所述步骤S3具体为:
解析获取的swager文档的json数据,生成客户端可识别的js代码,
根据API接口RESTFUL将识别的js代码生成本地的http函数,一个swager文档对应一个http函数,将所有http函数统一形成封装好的axios函数集中管理,
提供axios函数所需的参数,
为每个http函数进行差异化配置,生成函数备注,解析参数含义,形成具有不同功能的本地的http.js文件。
4.根据权利要求3所述的基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,所述“axios函数所需的参数”包括请求url,method,formData,header等参数。
5.根据权利要求3所述的基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,“为每个http函数进行差异化配置”具体为,根据引入封装好的axios函数,配置不同的参数按需加载,形成具有不同功能的本地的http.js文件。
6.根据权利要求2所述的基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,步骤S2为在nodejs环境下请求本地的接口文档管理页面,爬取swager文档的json数据。
7.根据权利要求1所述的基于nodejs脚本动态生成项目本地可执行文件的方法,其特征在于,当服务端更新了接口文档后,客户端只需要重新执行apiGenerator,更新生成最新的本地http.js文件。
8.一种计算机可读存储介质,存储有至少一程序,其特征在于,所述至少一程序在被调用时执行并实现如权利要求1-7中任一项所述的基于nodejs脚本动态生成项目本地可执行文件的方法。
9.一种电子装置,其特征在于,所述电子装置包含有如权利要求8所述的计算机可读存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111395741.0A CN114115897A (zh) | 2021-11-23 | 2021-11-23 | 基于nodejs脚本动态生成项目本地可执行文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111395741.0A CN114115897A (zh) | 2021-11-23 | 2021-11-23 | 基于nodejs脚本动态生成项目本地可执行文件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115897A true CN114115897A (zh) | 2022-03-01 |
Family
ID=80440018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111395741.0A Pending CN114115897A (zh) | 2021-11-23 | 2021-11-23 | 基于nodejs脚本动态生成项目本地可执行文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115897A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107628A (zh) * | 2022-12-21 | 2023-05-12 | 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) | 一种基于node.js的文档整理方法 |
-
2021
- 2021-11-23 CN CN202111395741.0A patent/CN114115897A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107628A (zh) * | 2022-12-21 | 2023-05-12 | 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) | 一种基于node.js的文档整理方法 |
CN116107628B (zh) * | 2022-12-21 | 2023-09-08 | 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) | 一种基于node.js的文档整理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144711B2 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
US7870482B2 (en) | Web browser extension for simplified utilization of web services | |
US11561997B2 (en) | Methods, systems, and computer readable media for data translation using a representational state transfer (REST) application programming interface (API) | |
CN113010827B (zh) | 页面渲染方法、装置、电子设备以及存储介质 | |
CN110941950B (zh) | 接口文档的生成方法、装置、服务器及存储介质 | |
Montesi | Process-aware web programming with Jolie | |
US20180150530A1 (en) | Method, Apparatus, Computing Device and Storage Medium for Analyzing and Processing Data | |
CN111026634A (zh) | 一种接口自动化测试系统、方法、装置及存储介质 | |
CN106790276A (zh) | 一种基于浏览器协议的跨浏览器数据交互方法和装置 | |
CN110598135A (zh) | 网络请求处理方法、装置、计算机可读介质及电子设备 | |
CN112882844A (zh) | 基于网络前后端的联调方法、装置及存储介质 | |
CN109634752B (zh) | 一种基于页面网关的客户端请求处理方法及系统 | |
CN105528369A (zh) | 网页转码方法、装置以及服务器 | |
CN114115897A (zh) | 基于nodejs脚本动态生成项目本地可执行文件的方法 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN114237594A (zh) | 一种表单界面生成方法、装置、系统及可读存储介质 | |
CN111723314A (zh) | 网页展示方法、装置、电子设备及计算机可读存储介质 | |
CN113806008A (zh) | 集群访问方法、装置、电子设备及可读存储介质 | |
CN105808727A (zh) | 基于html5的网站跨屏适配技术架构和适配方法 | |
US20140359429A1 (en) | Method, computer program, and system for rearranging a server response | |
CN115061678A (zh) | 一种基于浏览器代理服务的代码编译方法及客户端 | |
CN103885988A (zh) | 输出内容的方法及装置、内容输出系统 | |
US9800692B2 (en) | Expression based declarative data service execution chaining | |
CN113722115A (zh) | 调用接口的方法、装置、设备和计算机可读介质 | |
CN115086441B (zh) | 信息传输方法、装置、电子设备及存储介质 |
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 |