nestjs 学习(一)

项目地址

1. 基础操作

  1. 安装nest yarn add -g @nestjs/cli
  2. 创建项目 nest new project-name
  3. 启动服务器yarn run start
    yarn start:dev 监听文件变化,自动重启服务
  4. 使用nest-cli快速创建service/controller, 会自动引入Module中
    nest g [文件类型] [文件名] [文件目录(src目录下)]
    详细过程可以参考nest详细入门使用教程

2. 数据库的连接及使用——Mysql+Primsa

1. mysql 的基础知识点

官网下载安装,具体步骤可参考菜鸟教程
【常见基本命令】

- mysql -u root -p //登陆本地mysql 的root账号, -p表示要输入密码> show databases; //展示所有的数据库> show tables; //展示所有的表> create database databaseName; //创建数据库

2. Prisma

基于nestjs和typescript的ORM

  1. 安装 yarn add -D prisma
  2. 项目 init - 生成配置文件/prisma/schema.prisma
    npx prisma init (npx 是npm 的一个包执行器)
  3. 配置schema.prisma,主要包括以下三方面:
    1. DB 连接的配置
    2. Prisma Client 配置
    3. data model 定义
datasource db {provider = "mysql". //哪种数据库url      = "file:dev.db" //数据库url
}generator client {provider = "prisma-client-js"
}model User {id    Int     @id @default(autoincrement())email String  @uniquename  String?
}

4.运行prisma migrate 生成数据表和 client:
npx prisma migrate dev --name init
- ps: 如果后续有修改schema.prisma ,那么需要重新生成数据表和client
npx prisma migrate dev --name change

5.使用 client 对数据库进行 CRUD
6.使用 Prisma Studio GUI 查看并操作数据库
npx prisma studio

3. prisma 连接数据库和nest

  1. 创建prisma 的module文件
import { Module, Global } from '@nestjs/common';
import { PrismaService } from './prisma.service';@Global() // 定义全局之后,任何模块都可以直接使用prismaService
@Module({providers: [PrismaService],exports: [PrismaService],
})
export class PrismaModule {}
  1. 创建prisma的service文件
import { Injectable, INestApplication } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';@Injectable()
export class PrismaService extends PrismaClient {async enableShutdownHooks(app: INestApplication) {this.$on('beforeExit', async () => {await app.close();});}
}

4. swagger

swagger: 一种基于RESTApi的工具,可生成交互式的api 文档

  1. 安装 yarn add @nestjs/swagger swagger-ui-express
  2. 在main.js 中引入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);const swaggerConfig = new DocumentBuilder().setTitle('swaggerLearn').setDescription('The Nest Api document').build();const document = SwaggerModule.createDocument(app, swaggerConfig);SwaggerModule.setup('api', app, document);await app.listen(8090);
}
bootstrap();

访问http://localhost:8090/api 就可以看到生成的api 文档

  1. https://juejin.cn/post/6844904096017678343
  2. https://juejin.cn/post/7112694027212259364

nestjs+mysql+prisma + swagger项目搭建相关推荐

  1. Node.js+Express+Vue+MySQL+axios的项目搭建

    1 基本搭建 创建vue项目之前需要先安装Node.js和MySQL数据库 1.1 vue脚手架安装 npm i vue -g npm i @vue/cli -g//初始化vue项目 vue crea ...

  2. java+spring+mysql配置_JAVA后台搭建(springboot+mybatis+mysql)项目搭建

    前言 上篇文章写了基本环境配置的搭建,接下来我们需要搭建项目了,项目搭建使用的IDEA,springboot项目的搭建非常快只需要几分钟,然后介绍MyBatis以及MySql的基本配置以及项目的Hel ...

  3. vue+node.js+mysql项目搭建

    前言 用vue搭建前端页面.用node开发后端接口.数据库用mysql 可行性分析 缺点: nodejs单线程,不能做cpu密集型操作,导致时间片不能释放,阻塞后面的任务. nodejs可靠性比较低, ...

  4. 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...

    转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...

  5. 001-云E办_后端项目搭建

    001-云E办_后端项目介绍 一.项目介绍: 二.项目搭建 1.创建数据库 2.创建父项目 3.创建子项目:yeb-server 4.更改yeb-server 1.在xml文件中,添加依赖于父工程. ...

  6. 谷粒学苑-项目搭建、讲师前后端、课程分类前后端、OSS、EasyExcel

    谷粒学苑 url: jdbc:mysql://localhost:3306/guli?useUnicode=true&useSSL=false&characterEncoding=UT ...

  7. 尚医通 (二)项目搭建

    目录 一.工程结构介绍 1.工程结构 2.模块说明 二.创建父工程 1.创建sprigboot工程yygh_parent 2.删除 src 目录 3.配置 pom.xml 4.在pom.xml中添加依 ...

  8. Spring MVC + Mybatis项目搭建

    1.参考<Java Spring MVC项目搭建(一)--Spring MVC框架集成>配置spring mvc需要的jar包及eclipse配置(主要是针对servlet-api.jar ...

  9. SSM项目搭建一(终)

    2019独角兽企业重金招聘Python工程师标准>>> 项目搭建使用的不仅仅只是前面所说的那些,还有一下比如gson或jackson.个人类库.定时器等等,这里就不一一赘述了.下面看 ...

最新文章

  1. js base64 解码
  2. Java中的instanceof关键字
  3. Python 如何计算当前时间减少或增加一个月
  4. My97DatePicker日历插件
  5. 如何用JavaScript手动实现一个栈
  6. mysql第四章表单查询样题_查询mysql表单中前10条,然后在li中循环输出。
  7. 对于redis底层框架的理解(一)
  8. 在 Apex 代码中生成 csv 文件
  9. 第24周维生素市场最新动态
  10. 苹果CMSv10黑金色自适应网站模板
  11. 【BZOJ】1756: Vijos1083 小白逛公园(线段树)
  12. matlab学习笔记杂项一
  13. bt种子php啥格式的,bt种子是什么意思(bt种子的格式及文件结构)
  14. MSG数据(EUMETSAT)和GOES数据(NOAA)下载
  15. c语言74hc595程序,单片机驱动74HC595的c51程序 - 51单片机控制74HC595驱动的编程要点_单片机驱动74HC595的c51程序...
  16. 光纤模块与光纤收发器使用方法
  17. 【历史上的今天】7 月 18 日:英特尔成立;万维网上传了第一张照片;eBay 分拆 PayPal
  18. JavaWeb之【web站点的欢迎页面】
  19. MATLAB如何解决弹出路径不存在的问题
  20. Observability——Datadog

热门文章

  1. 读书笔记-精准努力-三阶段 感触深
  2. python异常数据处理_Python数据处理:异常值处理方法之3σ原则
  3. ubuntu18 steam闪退的解决办法
  4. Pr:导出设置之基本视频设置
  5. html背景颜色透明度代码,css里定义背景色全透明或半透(background)方法
  6. mysql collect_set_Hive sql 使用group by 字段被限制使用 collect_set/collect_list处理
  7. php编辑框禁止输入,如何设置表单的input文本框不可编辑
  8. 计算机毕设Node.js+Vue游戏盒子系统(程序+LW+部署)
  9. JAVA面向对象第一堂课
  10. MedCalc:生物医学研究的统计软件 Crack