[发明专利]一种根据TypeScript类型生成Mongoose模型的方法有效
| 申请号: | 202110410820.8 | 申请日: | 2021-04-15 | 
| 公开(公告)号: | CN113031935B | 公开(公告)日: | 2023-10-27 | 
| 发明(设计)人: | 周伟航;马晓迪 | 申请(专利权)人: | 杭州芯翼科技有限公司 | 
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 | 
| 代理公司: | 北京久维律师事务所 11582 | 代理人: | 邢江峰 | 
| 地址: | 311100 浙江省杭州市余杭*** | 国省代码: | 浙江;33 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 根据 typescript 类型 生成 mongoose 模型 方法 | ||
1.一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,包括以下步骤:
步骤一:开启TypeScript的类型信息输出,有两种方法均可等价;
步骤二:给数据库模型类的不同条件,加上不同修饰器;
步骤三:若有跨字段索引,则给数据库模型类加上@index()修饰器
步骤四:若有第三方插件需要引入,则给数据库模型类加上@plugin()修饰器;
步骤五:使用getSchema方法,传入数据库模型类,得到Mongoose的约束模型;
步骤六:使用getModel方法,传入数据库模型类,得到有类型约束的Mongoose的数据库模型实例;
步骤七:使用上步得到的数据库模型实例进行增删改查操作,可以同时得到类型提示以及数据库类型约束。
2.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤一中的两种方法分别为:在编译时传递—emitDecoratorMetadata,以及修改tsconfig.json文件,设置compilerOptions.emitDecoratorMetadata为true。
3.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:对数据模型类加上@model()修饰器;给数据库模型类的_id字段,加上@id()修饰器;给数据库模型类的各个属性字段,加上@prop()修饰器。
4.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:给数据库模型类的各个数组字段,加上@array()修饰器;给数据库模型类必填字段,加上@required()修饰器;给数据库模型类需要索引的字段,加上@indexed()修饰器。
5.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:给数据库模型类需要隐藏的字段,加上@hidden()修饰器;给数据库模型类需要唯一约束的字段,加上@unique()修饰器;给数据库模型类有默认值填充的字段,加上@defaults()修饰器。
6.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:给数据库模型类需要手动强制设置类型的字段,加上@type()修饰器;给数据模型类枚举类型字段,加上@enums()修饰器;给数据库模型类关联字段,加上@ref()修饰器。
7.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:给数据库模型类关联数组,加上@refArray()修饰器。
8.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:给数据库模型类静态方法,加上@statics()修饰器;给数据库模型类成员方法,加上@methos()修饰器。
9.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤二中,进一步地,包括以下内容:给数据库模型类辅助查询方法,加上@query()修饰器;给数据模型类虚拟属性,加上@virtual()修饰器。
10.根据权利要求1所述的一种根据TypeScript类型生成Mongoose模型的方法,其特征在于,所述步骤七中,类型提示由TypeScript提供,以及数据库类型约束由Mongoose提供。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州芯翼科技有限公司,未经杭州芯翼科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110410820.8/1.html,转载请声明来源钻瓜专利网。





