nest.js-学习记录:9、使用Nest.js-typegoose依赖注入post

nestjs-typegoose:使用NestJS进行Typegoose nestjs-typegoose 描述 为组件和控制器注入模型。 使用Typegoose消除了对Model接口的需求。 安装 npm install --save nestjs-typegoose 要么 yarn add nestjs-typegoose 文献资料 基本用法 您可以签出example项目以了解更多详细信息。 app.module.ts import { Module } from "@nestjs/common" ; import { TypegooseModule } from "nestjs-typegoose" ; import { CatsModule } f 立即下载

听得云里雾里,先把代码保存下来,详细的之后填上。

一、引入 npm i --save nestjs-typegoose
二、main.ts

import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
declare const module: any;

async function bootstrap() {

  const app = await NestFactory.create(AppModule); 
  
  // 验证管道
  app.useGlobalPipes(new ValidationPipe)

  const config = new DocumentBuilder()
    // 标题
    .setTitle('NestJs博客API') 
    // 描述
    .setDescription('我的第一个NestJs项目') 
    // 版本
    .setVersion('1.0')
    .build();
  // 引入Swagger
  const document = SwaggerModule.createDocument(app, config);
  // 接口文档路径
  SwaggerModule.setup('api-docs', app, document); 
  // 监听端口号3000
  await app.listen(3000); 
   
  if (module.hot) {
    module.hot.accept();
    module.hot.dispose(() => app.close());
  }
}

bootstrap();






三、app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { PostsModule } from './posts/posts.module';
import { TypegooseModule } from 'nestjs-typegoose' 
@Module({
  imports: [
    TypegooseModule.forRoot('mongodb://localhost:27017/nest-blog-api'),
    PostsModule
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

四、posts.module.ts

import { Module } from '@nestjs/common';
import { TypegooseModule } from 'nestjs-typegoose';
import { PostsController } from './posts.controller';
import { postModel } from './posts.model';

@Module({
  controllers: [PostsController],
  imports :[
    TypegooseModule.forFeature([postModel])
  ]
})
export class PostsModule {}

五、posts.model.ts

import { prop } from "@typegoose/typegoose"

export class postModel{
    @prop()
    title:string
    @prop()
    content:string
}

六、posts.controller.ts

import { Body, Controller, Delete, Get, Param, Post, Put, Query } from '@nestjs/common';
import { ApiOperation, ApiProperty, ApiTags } from '@nestjs/swagger';
import { postModel} from './posts.model';
// 引入验证
import { IsNotEmpty } from "class-validator"
import { InjectModel } from 'nestjs-typegoose';
import { ModelType } from '@typegoose/typegoose/lib/types';
// 标识创建帖子的参数详情
class createPostDto{
    @ApiProperty({description:'帖子标题'})
    // 验证
    @IsNotEmpty({message:'请填写标题'})
    title:string
    @ApiProperty({description:'帖子内容'})
    content:string
}

@Controller('posts')
@ApiTags('帖子')
export class PostsController {
  constructor(@InjectModel(postModel) private readonly postModel :ModelType<postModel>){}
  @Get()
  @ApiOperation({summary:'显示帖子列表'})
 async index() {
    return await this.postModel.find()
  }

  @Post()
  @ApiOperation({summary:"创建帖子"})
  // 获取post请求的数据用@Body()装饰器获取数据,get用@query()
 async create(@Body() Body:createPostDto){
    await  this.postModel.create(Body)
    return{
      success:true
    }
  }

  @Get(':id')
  @ApiOperation({summary:"帖子详情"})
  async detail(@Param('id') id:string){
    return await  this.postModel.findById(id)
  }

  @Put(':id')
  @ApiOperation({summary:'编辑帖子详情'})
  async update(@Param('id') id:string,@Body() body:createPostDto){
    await  this.postModel.findByIdAndUpdate(id,body)
    return {
      success:true
    }
  }
  @Delete(':id')
  @ApiOperation({summary:'删除帖子'})
  async remove(@Param('id') id:string){
    await  this.postModel.findByIdAndDelete(id)
    return{
      success:true
    }

  }
}

文件目录
在这里插入图片描述

nestjs-crud-mongoose:@nestjsxcrud的猫鼬服务适配器 nestjs-crud-猫鼬 Mongoose / Typegoose服务适配器 Nest.js + typegoose视频(中文): Nest.js + Typegoose中文视频教程请移步哔哩哔哩哩全栈之巅: 如何 安装 yarn add nestjs-crud-mongoose # or npm i nestjs-crud-mongoose 基于猫鼬/ typegoose模型创建服务 /src/users/users.service.ts // for typegoose users import { User } from "../../common/users/user.model" ; import { Injectable , Inject } from "@nestjs/common" ; import { ModelType } from "@typegoose/typegoose/lib/types" ; import { MongooseCrudService } from "./mongoose-crud.service" ; @ Injectable ( 立即下载

相关推荐

基于Codex平台与AI Agent技能开发,实现抖音爆款视频分析与脚本自动生成

大家好,我是专注于AI应用开发的技术博主。最近在探索如何利用AI工具自动化内容创作时,我发现了一个非常有趣的组合:通过Codex平台创建自定义的Skill(技能),来批量分析抖音平台的爆款视频,并基于分析结果自动生成新的带货视频脚本。这听起来像是内容团队的“黑科技”,但实现起来其实有清晰的路径可循。本文将为你完整拆解这个实战项目,从环境搭建、Skill编写、数据抓取到视频脚本生成,手把手教你打造自己的“AI内容助理”。无论你是想了解AI Agent的开发,还是对短视频自动化创作感兴趣,都能从本文中获得可直接

weixin_34110749的博客 644

Nest.js Typegoose 教程

Nest.js Typegoose 教程 项目介绍 Nest.js Typegoose 是一个流行的 Nest.js 模块,它简化了使用 Typegoose 与 Mongoose 在 Nest 应用程序中操作 MongoDB 数据库的过程。Typegoose 提供了一种以类型安全的方式定义和操作 MongoDB 模型的方法,而 Nest.js Typegoose 则将这一能力无缝集成到基于 Ne...

gitblog_00001的博客 435

【SpringBoot香樟转转】debugDay01

在学黑马程序员的苍穹外卖项目,刚开始学,想用maven编译一下代码,结果报错,找不到符号。本着先理解原则,看着能找到这个变量呀。

m0_72696598的博客 1737

nestjs学习(五)

nestjs学习(五) nest接入mongoose 依赖下载 npm install mongoose mongoose-auto-increment mongoose-paginate nestjs-typegoose typegoose --save-dev database模块创建 (别忘了将模块导入最外层模块中) mongoose.transform.ts // Mong...

AndyViky的博客 1394

在 dell precision 7920 tower CentOS 8 Stream 上安裝nvidia驱动程序、Anaconda

简单记录一下如何在实验室dell precision 7920 tower CentOS 8 Stream上安装nvidia显卡驱动。

chen9046的博客 995

科研党必备:Python脚本批量下载DOI文献的保姆级教程(附避坑指南)

本文为科研人员提供了一份详细的Python脚本批量下载DOI文献的教程,涵盖环境配置、核心功能实现、性能优化及常见问题解决。通过自动化脚本,研究者可高效完成文献批量下载,显著提升科研工作效率,特别适合需要处理大量文献的研究团队使用。

weixin_26965807的博客 477

NestJs 中使用 mongoose

在NestJs使用mongoose的知识点

qq_33003143的博客 1851

JWT实战:5分钟搞定Spring Boot集成JWT认证(含完整代码示例)

本文详细介绍了如何在Spring Boot中快速集成JWT认证,提供完整的代码示例和配置指南。通过JWT实现无状态认证,解决分布式系统中的会话管理问题,提升系统扩展性和安全性。涵盖令牌生成、验证、Spring Security整合及生产级优化方案。

weixin_29327525的博客 456

nest.js-学习记录:6、Typegoose模型定义

1、下载mongodb数据库 2、安装Typegoose $ npm install --save mongoose $ npm install --save-dev @nestjs/mongoose $ npm i @typegoose/typegoose 3、main.ts import { NestFactory } from '@nestjs/core'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; impor

webtext的博客 1042

【EMC专题】为什么芯片规格书ESD性能中看不到MM(机器放电模型)

器件级ESD包括三种类型,HBM人体放电模型、MM机械放电模型和CDM元件充电模型。但在芯片规格书中为什么只见到HBM模型与CDM模型,却没有看到MM模型的数据?

一点硬件 450

Google Earth Engine——使用STARFM 图像融合算法将Landsat 和 MODIS 融合得出2000-2023 NDVI长时序图(空间分辨率为 30 米、时间分辨率为 16 天)

非本地入侵物种是全球生态系统面临的主要威胁之一。野葛(Pueraria montana)是一种生长迅速的藤本植物,原产于亚洲,现已入侵美国一些地区,因此该物种的管理成为一个重要问题。利用 Landsat 和 MODIS 平台收集的数据,计算了 2000 年至 2015 年肯塔基州三个侵扰地点的归一化差异植被指数(NDVI)估算值。使用 STARFM 图像融合算法将大地遥感卫星和 MODIS 得出的 NDVI 结合成空间分辨率为 30 米、时间分辨率为 16 天的时间序列。

此星光明博客 2509

NestJS-Typegoose 项目常见问题解决方案

NestJS-Typegoose 项目常见问题解决方案 一、项目基础介绍 项目名称: NestJS-Typegoose 项目简介: NestJS-Typegoose 是一个开源项目,用于在 NestJS 应用程序中集成 Typegoose,从而允许开发者使用 TypeScript 的类型安全特性来定义和操作 MongoDB 模型。该项目是 @nestjs/mongoose 的一个替代品,通过使用 ...

gitblog_00832的博客 328

基于网关实现不同网段S7-1200 CPU的通信方法

在A网段的计算机上ping B网段的计算机:在A网段的计算机上使用ping命令,向B网段的计算机发送数据包。在B网段的计算机上ping A网段的计算机:同样地,在B网段的计算机上使用ping命令,向A网段的计算机发送数据包。数据包也会经过路由器进行转发,最终到达A网段的计算机。配置路由器:在路由器上配置两个网段的IP地址和子网掩码,并设置路由表,使得路由器可以将A网段和B网段之间的数据进行转发。确定两个网络之间的路由器:假设需要将A网段和B网段进行通信,需要在A、B两个网段之间设置一台路由器。

电工 2400

nestjs+typegoose+vuejs全栈项目服务器开发(server)学习记录一

一、在VScode新建一个server 1、全局安装nest:npm i -g @nestjs/cli 2、新建一个nest框架的服务器server:nest new server 3、在server文件目录下(cd server)新建一个名为admin的子目录:nest g app admin(admin作为后台接口,server作为app端接口) 电脑 4、先启动项目运行admin:nest start -w admin { 启动出现错误An async function or method in ES

qq_42666043的博客 3563

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一篇文章轻松入门Nest.js

Nest.js框架入门学习

2403_87076697的博客 3865

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

nest.js-学习记录:4、post请求和数据传输对象DTO

1、获取post请求的数据用@Body()参数装饰器获取数据,get用参数装饰器@Query。 另外@Param()获取Params里的东西 2、在获取参数时,有事会需要定义请求数据格式,可以按照下面创建createPostDto类的方式来约束数据。 import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common'; import { ApiOperation, ApiTags } from '@nestjs/swagger

webtext的博客 2043

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Nestjs Mongoose使用 (附加@nestjs/swagger使用)

Nestjs Mongoose使用 (附加@nestjs/swagger使用) 一开始并没有使用官方给出的mongoose包,而是使用了typegoose。 ####首先要创建一个项目 然后见一个文件夹这里我的是posts然后创建好mvc //PostsModule.ts 这个是最后结合mongoose的一个 解藕性很好的一个版本 //(什么是解耦:模块一的实现依赖于模块二,更改模块二后,模块一也...

杜跃飞的博客 2379

nestJs连接mongodb与使用

安装 //定义模型 cnpm i --save @typegoose/typegoose //安装定义文件,用于提示 cnpm i --save mongoose @types/mongoose //连接mongdb cnpm i --save nestjs-typegoose 使用 app.module.ts 连接mongodb import { Module } from '@nestjs...

marendu的博客 1万+

Nestjs

Nestjs for TypeScript https://docs.nestjs.com/ CLI # 全局安装CLI npm i -g @nestjs/cli # 创建项目 nest new project-name # 运行(watch模式) npm run start:dev # 创建子项目 nest g app xxx # nest g app admin 会生成一个a...

wlh3133的博客 1347

NestJS 配置连接MongoDB

# 安装数据库模块 yarn add nestjs-typegoose @typegoose/typegoose yarn add mongoose @types/mongoose import { Module, Global } from '@nestjs/common'; import { DbService } from './db.service'; import { Typegoos...

BradyCC的博客 1434

NestJS Nest.js个人学习笔记

NestJS Nest.js个人学习笔记NestJS官网 NestJS官网 OpenAPI (Swagger) 相关 npm install --S @nestjs/swagger swagger-ui-express // pic.controller.ts import { ApiTags, ApiProperty, ApiOperation } from '@nestjs/swagger'; // 定义dto export class GetPicDto { @ApiProperty({

a1255215696的博客 859

NestJS 配置

nest.js是一个渐进式的Node.js框架,用于构建高效,可靠和可扩展的服务器端应用程序。 # 全局安装 npm i -g @nestjs/cli # 查看版本 nest -V # 创建项目 nest new server # 创建子项目 cd server nest g app admin # 启动监听子项目 nest start -w admin # 创建功能模块 cd se...

BradyCC的博客 1272

NestJs使用Mongoose对MongoDB操作

最近开始学习NestJs这个框架。学习成本比其他框架相对高了很多。 其注册配置相对复杂一开始学起来有点摸不着哪跟哪;但这也是相比其他框架更规范严谨的体现。保证了大型项目的稳定健壮的使用! 在学习 ...

ragga-time 7236

nest框架连接mongodb数据库

作为后端语言开发自然要连接数据库,对数据的增删改查,目前nest提供可以连接的数据库有mySQL和mongoDB,官网地址,本文介绍使用nest连接mongoDB数据库,官网介绍也很简单,官网提供的案例 一、使用步骤 1、安装依赖包 npm install --save @nestjs/mongoose mongoose 2、在项目中创建一个database作为数据库连接的文件/或者

水痕 4546

Nestjs 使用mongodb

Docs: https://docs.nestjs.com/techniques/mongodb yarn add @nestjs/mongoose mongoose 链接 // sec/app.module.ts import { Module }from '@nestjs/common'; import { AppController } from './app.controller';...

weixin_33872660的博客 1226

从零开始搭建搭建nestJs

从零开始搭建搭建nestJs Nest 概念 Nest的核心概念是提供一种体系结构,它帮助开发人员实现层的最大分离,并在应用程序中增加抽象。 主要有三个核心概念:模块Module, 控制器Controller, 服务与依赖注入 Provider Dependency injection 模块Module: 用于将代码拆分为独立的和可重用的模块,例如用户信息模块,然后将该用户模块的控制器...

marendu的博客 1万+
上一篇: nest.js-学习记录:8、使用class-validator验证请求数据
下一篇: 关于vite 和webpack的区别
言只  石皮
博客等级 码龄7年 21粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言只 石皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值