1.安装nest.js框架nest.js官方开发文档,全局安装nest框架npmi-g@nestjs/cli2.新建nestjs项目nestnewnest-api选择使用npm还是yarn安装dependencies,我直接回车选择如果npm感觉慢,可以在这里取消,用vscode打开nest-api项目终端然后安装依赖npmi等待安装完成npmrunstart如果是这样的话,项目运行成功3.新建一个公共库文件用于存放mongose数据库模型的设计nestglibdb@libs输入@libs回车,应该多出一个libs文件夹4.安装nest数据库依赖在npminestjs-typegoose@typegoose/typegoosemongoose@types/mongoosenestjs-mongoose-crud@nestjs/swaggerswagger-ui-express5。创建user表的模型在libs/src目录下新建models文件夹,然后在models文件夹下新建user.model.tsts文件并在文件中写入如下代码import{prop,modelOptions}from'@typegoose/typegoose';从'@nestjs/swagger'导入{ApiProperty};//为添加的数据添加时间戳@modelOptions({schemaOptions:{timestamps:true}})exportclassUser{@ApiProperty({description:'username',example:'user1'})@prop()username:string@ApiProperty({description:'password',example:'password1'})@prop()密码:字符串}6.使用nest命令创建users文件夹nestgmo-pusersusersnestgco-pusersusers然后然后把控制代码写在users/users.controller.tsimport{Controller}from'@nestjs/common';从'nestjs-typegoose'导入{InjectModel};从“@libs/db/models/user.model”导入{User}从“nestjs-mongoose-crud”导入{Crud};import{ApiTags}from'@nestjs/swagger'@Crud({//User采用CRUD接口模型:User})@Controller('users')@ApiTags('User')exportclassUsersController{//注入User模型构造函数(@InjectModel(User)privatereadonlymodel){}}7.在libs/db/src/db.model.ts中配置dbdb.model.ts编写如下代码注意!这里是我的数据库地址,请自行申请免费在线数据库地址,或者自己本地的mongoDB数据库地址如何申请在线数据库,请到https://segmentfault.com/a/11...import{模块,全局}来自'@nestjs/common';从'./db.service'导入{DbService};从'nestjs-typegoose'导入{TypegooseModule};从'./models/user.model'导入{用户};constmodels=TypegooseModule.forFeature([用户]);@Global()@Module({imports:[TypegooseModule.forRoot('mongodb+srv://root:root@cluster0-bujei.mongodb.net/nest-api?retryWrites=true&w=majority',{useCreateIndex:true,useUnifiedTopology:true,useNewUrlParser:true,useFindAndModify:false,},),模型,],供应商:[DbService],exports:[DbService,models],})exportclassDbModule{}8.引用根目录src/app.module.ts中的db和users,编写如下代码import{Module}from'@nestjs/common';从'./app.controller'导入{AppController};从'./app.service'导入{AppService};从'@libs/db'导入{DbModule};从'./users/users.module'导入{UsersModule};@Module({imports:[DbModule,UsersModule],controllers:[AppController],providers:[AppService],})exportclassAppModule{}9.在main.ts中配置swagger,启动端口根目录src/main中写入.ts中的以下代码import{NestFactory}from'@nestjs/core';import{AppModule}from'./app.module';import{SwaggerModule,DocumentBuilder}from'@nestjs/swagger';asyncfunctionbootstrap(){constapp=awaitNestFactory.create(AppModule);app.enableCors();constoptions=newDocumentBuilder().setTitle('嵌套后台API').setDescription('后台管理接口调用的服务端API').setVersion('1.0')//.addTag('cats').建造();constdocument=SwaggerModule.createDocument(app,options);SwaggerModule.setup('api-docs',app,document);等待app.listen(3000);console.log('http://localhost:3000');console.log('http://localhost:3000/api-docs');}bootstrap();10.启动如图所示的后端服务npmrunstart,说明服务启动成功。http://localhost:3000是你的本地接口地址http://localhost:3000/api-docs是你的本地接口文档地址。写一个简单的crud界面就这么简单
