nest.js
中文官网: https://docs.nestjs.cn/8/introduction
基本使用
当我们按照官网执行开启项目后就如下结构
app跟模块,控制器,以及提供者。
控制器用来控制路由,我们首先看下控制器,
看到这种其实可以想到其用法了,
这里用来写路由相关的控制。
appService是数据提供者,如
类似于依赖注解这样。
关联Mongodb数据库
创建集合
使用
与express框架这些关联数据库是差不多的。
接口类定义
这里可以获取到像express中的req.params,req.body,req.query这些,而且比如这个post请求的请求体Body可以定义数据类型
这样就可以正常使用了。
在前台只需要发送这个数据体就可以创建一个贴子,并且存到数据库。
edit
验证管道
yarn add class-vaildator class-transform
当title的属性没有传的时候就会报错。
使用依赖注入
上面我们写的代码都是类似于express的,后期解耦难,nest官网提供了其他方法
首先连接,将其导入到appmodule中,
在这里导入对应的模块,
使用依赖注入的方法,这样就可以通过catModel访问这个集合。
看实际代码:
npm i --save nestjs-typegoose
连接数据库
定义集合
在模块中注册集合
在控制器中依赖注入
这样在这个控制器中就可以
this.PostMode去找打这个集合进行操作。
CRUD
我们可以会对很多模块进行增删改查,所以可以实现一个统一的接口。
yarn add nestjs-mongoose-crud
这个库是b站全栈之巅作者写的,具体用法如图
讲要用的模型注入进去,然后下面的Model就是通用的了,比如你可以注册Post模型,可以注册user模型等等。接口共用。
接着把全部接口注释掉,因为这个库默认帮助我们实现五个接口,
曾删改查。
试下第一个
正常返回。
提示
我们可以在定义集合的时候
这样定义,就有例子了。
接着我们细看这个Crud
这里就可以扩张用法,比如
给find方法加上装饰器,