生活随笔
收集整理的這篇文章主要介紹了
手把手教你用nestjs框架7分钟生成crud风格接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Tobenew ? ,感謝!
node.js?mongodbnestjs
1.安裝nest.js框架
nest.js官方開發文檔
npm i -g @nestjs/cli
2. 新建一個nestjs項目
nest new nest-api
選擇是用npm還是yarn裝依賴,我是直接回車選擇npm
如果覺得慢此處可以取消,用vscode打開nest-api項目
終端再來安裝依賴
npm i
等待安裝完成
npm run start
如果是這樣,則項目是成功跑起來的
3. 新建一個公共庫文件,用來放mongose數據庫的設計model
nest g?lib?db?@libs
輸入@libs 回車
此時應該多了一個libs文件夾
4. 安裝nest數據庫依賴
npm?i nestjs-typegoose @typegoose/typegoose mongoose @types/mongoose nestjs-mongoose-crud @nestjs/swagger swagger-ui-express
5. 創建user表的model
在libs/src 目錄下新建 models 文件夾,然后在models文件夾下新建 user.model.ts 的ts文件
import { prop, modelOptions } from '@typegoose/typegoose';import {ApiProperty} from '@nestjs/swagger';// 給添加的數據加入時間戳@modelOptions({schemaOptions:{timestamps:true}
})export class User{@ApiProperty({description:'用戶名',example:'user1'})@prop()username: string@ApiProperty({description:'密碼',example:'password1'})@prop()password: string}
6. 用nest命令創建users文件夾
nest g mo -p?users users
nest g co -p?users users
然后在users/users.controller.ts 里寫入控制代碼
import { Controller } from '@nestjs/common';import { InjectModel } from 'nestjs-typegoose';import {User} from '@libs/db/models/user.model'import { Crud } from "nestjs-mongoose-crud";import {ApiTags} from '@nestjs/swagger'@Crud({// User采用增刪改查接口模式model:User})@Controller('users')@ApiTags('用戶')export class UsersController {// 注入User模型constructor(@InjectModel(User) private readonly model){}}
7.在libs/db/src/db.model.ts里配置db
db.model.ts 寫入如下代碼 注意!此處用的是本人數據庫地址,請自行申請一個免費線上數據庫地址,或者自己的本地mongoDB數據庫地址 如何申請線上數據庫 請移步?https://segmentfault.com/a/11...
import { Module, Global } from '@nestjs/common';import { DbService } from './db.service';import { TypegooseModule } from 'nestjs-typegoose';import { User } from './models/user.model';const models = TypegooseModule.forFeature([User]);@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,},),models,],providers: [DbService],exports: [DbService, models],})export class DbModule {}
8.在根目錄的src/app.module.ts 里引用db 以及users
import { Module } from '@nestjs/common';import { AppController } from './app.controller';import { AppService } from './app.service';import { DbModule } from '@libs/db';import { UsersModule } from './users/users.module';@Module({imports: [DbModule, UsersModule],controllers: [AppController],providers: [AppService],})export class AppModule {}
9.在main.ts里面配置swagger 以及啟動端口
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';async function bootstrap() {const app = await NestFactory.create(AppModule);app.enableCors();const options = new DocumentBuilder().setTitle('nest后臺API').setDescription('供后臺管理界面調用的服務端API').setVersion('1.0')// .addTag('cats').build();const document = SwaggerModule.createDocument(app, options);SwaggerModule.setup('api-docs', app, document);await app.listen(3000);console.log('http://localhost:3000');console.log('http://localhost:3000/api-docs');
}
bootstrap();
10.啟動后端服務
npm?run?start
如圖就是啟動服務成功了
http://localhost:3000 就是你的本地接口地址
http://localhost:3000/api-docs 就是你的本地接口文檔地址
看,寫簡單crud接口就是這么簡單
?
總結
以上是生活随笔 為你收集整理的手把手教你用nestjs框架7分钟生成crud风格接口 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。