Nest.js 写一个简单的增删改查

2023-11-07

这篇文章主要记录了一个简单的增删改查应用,涉及到了MongoDB,Swagger, 以及以express为底层的Nest.js框架。

简单介绍一下用到的工具,swagger就不用说了,MongoDB同样使用docker容器和mongo express进行图形化操作,Nest.js在入门篇我已经详细介绍过了,目前气势如火如荼。

在官方文档中Nest.js推荐连接MongoDB的是:

$ npm install --save mongoose
$ npm install --save-dev @types/mongoose

使用这个方法的话,在创建schema时,官方例子如下:

import * as mongoose from 'mongoose';

export const CatSchema = new mongoose.Schema({
  name: String,
  age: Number,
  breed: String,
});

String等写法是mongoose中的写法,而不是typescript的内容,下面推荐到这款插件typegoose使用类定义模板,对typescript的支持也做的更好:

npm i -s @typegoose/typegoose mongoose
npm i @types/mongoose

最后是用来模板认证的类验证器:

$ npm i --save class-validator class-transformer

 下面拿demo代码来介绍一下:

/*
 * @Date: 2019-09-30 14:33:53
 * @LastEditors: Asen Wang
 * @LastEditTime: 2019-09-30 22:42:48
 * @content: I
 */
import {getModelForClass, prop} from '@typegoose/typegoose'

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

export const PostModel = getModelForClass(Post)

首先这里使用到了三个属性,分别用prop装饰,最后生成文章模型"PostModel"并导出。

import { Body, Controller, Delete, Get, Param, Post, Put } from '@nestjs/common';
import { ApiOperation, ApiUseTags } from '@nestjs/swagger';
import { CreatePostsDto } from './dto';
import { PostModel } from './post.model';

@Controller('posts')
@ApiUseTags('文章网站')
export class PostsController {

  @Get()
  @ApiOperation({ title: '显示文章列表页面' })
  async index() {
    return await PostModel.find()
  }
  ...

在这里,我们引入了创建好的模型,使用起来也很简单,demo所示PostModel.find()就可以输出所有得到的数据。

结合我们入门篇里面的swagger的动态展示的方法,我们可以很简单的操作,比如你可以在数据库中增加一个数据,然后在swagger里面使用get方法得到结果:

nest.js的优势有很多,比如不用像Flask考虑各种各样的工程结构,蓝图等概念,也方便与swagger进行结合,使用的也是ES6推荐的import/export,而不是require的方法。

下一节我们实现用户验证的接口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nest.js 写一个简单的增删改查 的相关文章

  • 怎样更改计算机文件图标,文件夹图标怎么改?电脑更换文件夹图标的方法

    正常情况下 电脑桌面文件夹图标都是默认的 是不是偶尔看着有些审美疲劳 一些用户想让自己的文件夹漂亮一些或者有辨识度 想要改文件夹图标 那么文件夹图标怎么改 这里小编为大家推荐一种更改桌面图标的方法 1 打开需要更换图标的文件所在的文件夹 以
  • nohup和screen都是后台执行用的指令,有啥区别?

    Screen 之前用服务器跑模型ssh断了 程序也就跑死了 我当时是用到了screen指令 之前写的可以去看看 大致流程 1 首先安装screen yum install y screen 2 创建screen实例 screen S me
  • Retrofit中的ResponseConverter的处理顺序

    Retrofit选择ResponseConverter的流程如下 mermaid svg A0BABLoNrnvTlAVA label font family trebuchet ms verdana arial font family v
  • STM32之完成对SD卡的数据写入

    本文内容 本文主要掌握SD卡协议原理 用STM32F103完成对SD卡的数据读取 一 SD卡模块介绍 一 简介 SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备 由于它体积小 数据传输速度快 可热插拔等优良的特性 被广泛地于便携式装置上
  • 为什么速度环给的是正反馈_速度环、位置环增益作用

    伺服是由 3 个反馈系统构成 位置环 速度环 电流环 越是内侧的环 越 需要提高其响应性 不遵守该原则 则会产生偏差和震动 由于电流环是最内侧 的环 以确保了其充分的响应性 所以我们只需要调整位置环和速度环即可 调 整的主要参数是 位置环增
  • shell脚本详解(八)——一键部署自动化装机(PXE无人值守)

    shell脚本一键部署自动化装机 PXE无人值守 一 PXE无人值守自动化装机 二 使用shell脚本一键部署 一 PXE无人值守自动化装机 详情请点击 PXE及无人值守 二 使用shell脚本一键部署 bin bash 查看是否有本地yu
  • 代码随想录算法训练营第四期第七天day8

    344 反转字符串 编写一个函数 其作用是将输入的字符串反转过来 输入字符串以字符数组s的形式给出 不要给另外的数组分配额外的空间 你必须原地修改输入数组 使用O 1 的额外空间解决这一问题 示例1 输入 s h e l l o 输出 o
  • 单例模式php应用场景,基于php设计模式中单例模式的应用分析

    单例模式 简单的说 一个对象只负责一个特定的任务 单例类 1 构造函数需要标记为private 单例类不能再其他类中实例化 只能被其自身实例化 2 拥有一个保存类的实例静态成员变量 3 拥有一个访问这个实例的公共的静态方法 常用getIns
  • 【文心一言】什么是文心一言,如何获得内测和使用方法。

    文心一言 什么是文心一言 怎么获得内测资格 接下来就给大家展示一下 文学创作 商业文案创作 数理逻辑推算 中文理解 多模态生成 用python写一个九九乘法表 写古诗 前言 个人主页 以山河作礼 本文章是帮助大家了解文心一言 一起见证Al的
  • Databend 开源周报第 103 期

    Databend 是一款现代云数仓 专为弹性和高效设计 为您的大规模分析需求保驾护航 自由且开源 即刻体验云服务 https app databend cn What s On In Databend 探索 Databend 本周新进展 遇
  • 解决“no newline at end of file”

    解决 no newline at end of file 问题描述 环境是 win10 vscode python flake8 写代码的时候会报如下错误 原因和解决办法 flake8要求文件每一行都以换行结束 只需要在文件结尾回车即可 最
  • 有奖调研

    2021白帽调研 2021白帽调研 网络世界的特种兵 现实世界的守卫者 你们借键盘指点江山 你们用代码挥斥方遒 技术与战略的完美结合 让每一个漏洞无所遁形 白帽子 是你们的代号 更是你们坚守的目标 尊敬的各位白帽子 为更好的了解白帽子的现状
  • 晶振

    外部晶振稳定 内部晶振的误差比较大 但如果对频率要求不高的话 比如不涉及串口通信和精确定时等的话 用内部晶振就行 内部时钟 频率受温度等其它影响 但是能省下晶振的钱 还有2个I O 如果对频率要求不高 一般是优先选用内部振荡 如果你要省电
  • 详解Linux2.6内核中基于platform机制的驱动模型

    原文地址 http blog csdn net sailor 8318 archive 2010 01 29 5267698 aspx 注 本原创文章发表于Sailor forever 的个人blog 未经本人许可 不得用于商业用途 任何个
  • 网络布线知识点总结

    目录 认识综合布线系统 主流双绞线是超5类和6类 智能建筑的功能包含5A 综合布线的特点 综合布线系统组成 综合布线系统的结构 综合布线系统分级 综合布线系统中国标准 认识综合布线产品 双绞线 双绞线 双绞线结构 双绞线对比光缆的优缺点 双
  • spring boot(二):启动原理解析

    我们开发任何一个Spring Boot项目 都会用到如下的启动类 1 SpringBootApplication 2 public class Application 3 public static void main String arg
  • 计算机无法连接此设备,[修复]目前,此硬件设备未连接到计算机(代码45)

    Windows中的 A程序或功能可能会在相关的硬件端没有响应时失败 这个帖子谈到一个这样的错误代码 当硬件在Windows 10上没有与软件端连接时 它会发挥作用 当Windows检测到同一设备的硬件端问题时 错误代码45可能会出现在设备管
  • VS+QT双击ui文件用Designer打开时出现未指定错误/无法打开XX.ui文件

    在VS与Qt交互中 刚刚会在VS中使用Designer打开某ui文件 工作机制其实是vs利用到了qt vs tools 工具调用designer exe打开某ui文件 下面介绍的方法一就是重置qt vs tools插件 这个插件 个人建议不
  • 【JavaScript高级】ES7-ES13常用新特性

    文章目录 ES7 Array Includes 指数 ES8 Object values Object entries String Padding Trailing Commas Object Descriptors ES9 ES10 f

随机推荐

  • 快速开发app,这个快速开发框架,整合PC、移动端开发,让开发更畅快!

    之前 有发过不少PC端快速开发的文章 但是现在越来越多的项目需要PC和移动端结合 所以 我给大家介绍一下之前快速开发平台的APP版本 希望大家能够体验一下 发表一下自己的看法 下载的话 在官网 www learun cn上有APP二维码 扫
  • 规则引擎Drools使用 第五篇 Drools内置方法

    Drools内置方法 规则文件的RHS部分的主要作用是通过插入 删除或修改工作内存中的Fact数据 来达到控制规则引擎执行的目的 Drools提供了一些方法可以用来操作工作内存中的数据 操作完成后规则引擎会重新进行相关规则的匹配 原来没有匹
  • 全明星激斗服务器维护,《全明星激斗》进阶测试大回顾

    进阶测试正式结束 格斗之城又迎来了关闭的日子 想必各位格斗家一定意犹未尽 感觉还可以再来一局 不过没有关系 等待格斗之城的再次维护结束后 一定会以更好的面貌来迎接大家的 在此之前 安娜找到了负责数据统计的诺亚酱 要到了一些绝密的数据信息 特
  • [现代控制理论]10_可观测性与分离原理_观测器与控制器

    现代控制理论 11 现代控制理论串讲 完结 pdf获取 现代控制理论 10 可观测性与分离原理 观测器与控制器 现代控制理论 9 状态观测器设计 龙伯格观测器 现代控制理论 8 5 线性控制器设计 轨迹跟踪simulink 现代控制理论 8
  • mac下antlr4命令使用

    1 下载 lcc lcc hellow cd usr local lib lcc lcc hellow curl O http www antlr org download antlr 4 0 complete jar 可以看到该目录下出现
  • 【无标题】Java中的锁常见面试题总结

    一 什么是死锁 死锁 不同的线程分别占用对方需要的同步资源不放弃 都在等待对方放弃自己需要的同步资源 就形成了线程的死锁 出现死锁后 不会出现异常 不会出现提示 只是所有的线程都处于阻塞状态 无法继续 二 产生死锁的四个必要条件 1 资源互
  • [渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包

    这是最近学习渗透和网站攻防的基础性文章 前面文章从数据库原理解读了防止SQL注入 SQLMAP的基础用法 数据库差异备份 Caidao神器 这篇文章将详细讲解MySQL数据库攻防知识 有点类似第一篇文章 然后其核心是解决局部刷新数据的思想
  • 使用 AopContext.currentProxy() 报错:java.lang.IllegalStateException: Cannot find current proxy

    报错信息 java lang IllegalStateException Cannot find current proxy Set exposeProxy property on Advised to true to make it av
  • layui+PHP文件上传

    layui官方网站 http www layui com 一个很好的前端框架 现在也出了后台模板 收费 值得我们学习和借鉴 非常感谢作者 贤心 的开源和维护 一 下载layui部署到项目 在页面引入layui css和layui js 二
  • xml的读取分析 key value

    package com basedata xml import java io ByteArrayInputStream import java io File import java io FileInputStream import j
  • Visio直角连接线增加直角拐弯

    首先选中线条 然后在中点的地方按住shift键再拖动鼠标 就可以实现多个直角转弯了
  • autobank渗流分析计算教程_jade基本操作(4.晶格常数计算)

    微信公众号试行乱序推送 为了不错过更新 请点击本页面最上方的 结构分析表征 进入公众号主页 点击右上角的三个小点点 在弹出的界面点击 设为星标 并在看完图文或视频后点击右下角的 在看 和 赞 本公众号以各类仪器的测试 分析教程 欢迎关注同名
  • 莫烦tensorflow系列教程学习

    1 普通机器学习预测函数系数 y 0 1x 0 3 coding gbk import tensorflow as tf import numpy as np 生成数据 y 0 1x 0 3 x data np random rand 10
  • MySQL如何导入大量数据?

    有时我们会遇到需要将大量数据导入MySQL的需求 一般数据存储在csv或者txt中 数据由 分隔 这里提供两种方案供大家选择 一 创建测试表 为了测试 我们先创建数据库和表 并创建一个用户 create database loaddata
  • LevelDb(一):LevelDb简介

    1 leveldb简介 2 hello world 2 1 leveldb源码下载和编译 2 2 hello world程序 1 leveldb简介 LevelDb是google的工程师Jeff Dean和Sanjay Ghemawat这两
  • Netty应用(五)架设WebSocket服务

    Springboot有封装好的Websocket包 只需要几个简单的类和注解就能提供服务 在Java程序中 我们可以使用Netty来实现Websocket服务 依赖 compile io netty netty all 4 1 63 Fin
  • httpurlconnection中设置cookie的时机问题

    http blog csdn net archer zoro article details 42041883 遇到一个问题 先记录一下 在用httpurlconnection进行post提交的时候 需要将之前得到的cookie带入 之前是
  • ai2022中文版(支持m1) ai2022mac版

    最新版本的Illustrator 2022 for Mac中文版已经更新啦 这是一款专业的矢量图形设计软件 这次的ai 2022 mac版新增和改进了不少功能 比如应用3D效果 支持使用Adobe Substance材质添加纹理 通过发现面
  • ThinkPad在开机时常见的报错信息及含义

    0177 Bad SVP data stop POST task The checksum of the supervisor password in the EEPROM is not correct System board 主板问题
  • Nest.js 写一个简单的增删改查

    这篇文章主要记录了一个简单的增删改查应用 涉及到了MongoDB Swagger 以及以express为底层的Nest js框架 简单介绍一下用到的工具 swagger就不用说了 MongoDB同样使用docker容器和mongo expr