1.我们把后台管理端和前端服务器的接口用admin和server两个文件夹区分开了,但是他们都要连接数据库,所以我们来写一个共同的接口。注意:重新打开一个cmd命令端口,不要把前面nest start -w admin的页面关闭了。
cd server
nest g lib db
创建一个库lib,它独立于apps模块,lib中包含一个db模块,默认的前缀是@app,此处为了方便,更改为@libs
nest g lib db
2.将db模块引入admin模块的module中
3.安装针对ts的数据库typegoose
npm add nestjs-typegoose @typegoose/typegoose
因为typegoose依赖于mongoose,所以还要安装 mongoose
npm add mongoose @types/mongoose
这里有个坑,有些依赖是需要手动安装的。如果出现下面这种情况,就自己
npm install mongoose@^5.10.6
这里我们默认电脑是安装好了mongodb数据库并启动服务的,否则会报连接数据库的错。没有安装的百度一下自行安装。
4.在db模块完成数据库连接
5.在libs目录下创建一个新的文件夹models,用来存放所有的数据库模型
然后在models文件夹下创建一个user.model.ts文件,假设user模块中有两个属性:username和password,文件内容:
6.将user模型与db.module.ts相关联
7.现在admin就可以直接使用user了,但是为了解耦和代码清晰,我们不将user放入app层级,而是在admin的src目录下新建一个子模块,此处-p admin 用于指定user新建于admin子项目下:
nest g mo -p admin users
同时新建一个UserController(co控制器)
nest g co -p admin users
8.添加模块的 crud,crud这个接口可以实现增删查改
npm add nestjs-mongoose-crud
9.安装接口文档依赖
npm add @nestjs/swagger swagger-ui-express
10.在users控制器中注入InjectModel模块实现对用户的增删查改。
在浏览器中打开http://localhost:3000/users 出现下图,说明模块功能正常。
11.现在我们来实现后台接口文档的编写。去官方文档复制swagger的这段代码到admin下面的main.ts中,并添加好依赖。
然后修改api文档接口为api-docs
12.在浏览器中打开http://localhost:3000/api-docs,出现下面图片中内容
13.修改main.ts中关于标题的内容,给文档改名。
14.给用户控制器添加标签。
15.给libs/db下面的数据添加描述和时间戳。