nest.js学习

Posted lin_fightin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nest.js学习相关的知识,希望对你有一定的参考价值。

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方法加上装饰器,

以上是关于nest.js学习的主要内容,如果未能解决你的问题,请参考以下文章

nest.js学习静态资源配置和模板引擎+服务Service+cookie+session

Nest+Vue实战:工作计划管理系统

无论如何在 Nest.js 中使用 Fastify 获取请求、响应的类型接口

Nest JS GraphQL“不能为非空返回null” [重复]

Nest.js 全局守卫

Nest.js 获取注入器实例