nestjs+mysql+prisma + swagger项目搭建
nestjs 学习(一)
项目地址
1. 基础操作
- 安装nest
yarn add -g @nestjs/cli
- 创建项目
nest new project-name
- 启动服务器
yarn run start
yarn start:dev
监听文件变化,自动重启服务 - 使用
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
- 安装
yarn add -D prisma
- 项目 init - 生成配置文件
/prisma/schema.prisma
npx prisma init
(npx 是npm 的一个包执行器) - 配置
schema.prisma
,主要包括以下三方面:- DB 连接的配置
- Prisma Client 配置
- 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
- 创建prisma 的module文件
import { Module, Global } from '@nestjs/common';
import { PrismaService } from './prisma.service';@Global() // 定义全局之后,任何模块都可以直接使用prismaService
@Module({providers: [PrismaService],exports: [PrismaService],
})
export class PrismaModule {}
- 创建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 文档
- 安装
yarn add @nestjs/swagger swagger-ui-express
- 在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 文档
- https://juejin.cn/post/6844904096017678343
- https://juejin.cn/post/7112694027212259364
nestjs+mysql+prisma + swagger项目搭建相关推荐
- 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 ...
- java+spring+mysql配置_JAVA后台搭建(springboot+mybatis+mysql)项目搭建
前言 上篇文章写了基本环境配置的搭建,接下来我们需要搭建项目了,项目搭建使用的IDEA,springboot项目的搭建非常快只需要几分钟,然后介绍MyBatis以及MySql的基本配置以及项目的Hel ...
- vue+node.js+mysql项目搭建
前言 用vue搭建前端页面.用node开发后端接口.数据库用mysql 可行性分析 缺点: nodejs单线程,不能做cpu密集型操作,导致时间片不能释放,阻塞后面的任务. nodejs可靠性比较低, ...
- 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...
转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...
- 001-云E办_后端项目搭建
001-云E办_后端项目介绍 一.项目介绍: 二.项目搭建 1.创建数据库 2.创建父项目 3.创建子项目:yeb-server 4.更改yeb-server 1.在xml文件中,添加依赖于父工程. ...
- 谷粒学苑-项目搭建、讲师前后端、课程分类前后端、OSS、EasyExcel
谷粒学苑 url: jdbc:mysql://localhost:3306/guli?useUnicode=true&useSSL=false&characterEncoding=UT ...
- 尚医通 (二)项目搭建
目录 一.工程结构介绍 1.工程结构 2.模块说明 二.创建父工程 1.创建sprigboot工程yygh_parent 2.删除 src 目录 3.配置 pom.xml 4.在pom.xml中添加依 ...
- Spring MVC + Mybatis项目搭建
1.参考<Java Spring MVC项目搭建(一)--Spring MVC框架集成>配置spring mvc需要的jar包及eclipse配置(主要是针对servlet-api.jar ...
- SSM项目搭建一(终)
2019独角兽企业重金招聘Python工程师标准>>> 项目搭建使用的不仅仅只是前面所说的那些,还有一下比如gson或jackson.个人类库.定时器等等,这里就不一一赘述了.下面看 ...
最新文章
- js base64 解码
- Java中的instanceof关键字
- Python 如何计算当前时间减少或增加一个月
- My97DatePicker日历插件
- 如何用JavaScript手动实现一个栈
- mysql第四章表单查询样题_查询mysql表单中前10条,然后在li中循环输出。
- 对于redis底层框架的理解(一)
- 在 Apex 代码中生成 csv 文件
- 第24周维生素市场最新动态
- 苹果CMSv10黑金色自适应网站模板
- 【BZOJ】1756: Vijos1083 小白逛公园(线段树)
- matlab学习笔记杂项一
- bt种子php啥格式的,bt种子是什么意思(bt种子的格式及文件结构)
- MSG数据(EUMETSAT)和GOES数据(NOAA)下载
- c语言74hc595程序,单片机驱动74HC595的c51程序 - 51单片机控制74HC595驱动的编程要点_单片机驱动74HC595的c51程序...
- 光纤模块与光纤收发器使用方法
- 【历史上的今天】7 月 18 日:英特尔成立;万维网上传了第一张照片;eBay 分拆 PayPal
- JavaWeb之【web站点的欢迎页面】
- MATLAB如何解决弹出路径不存在的问题
- Observability——Datadog
热门文章
- 读书笔记-精准努力-三阶段 感触深
- python异常数据处理_Python数据处理:异常值处理方法之3σ原则
- ubuntu18 steam闪退的解决办法
- Pr:导出设置之基本视频设置
- html背景颜色透明度代码,css里定义背景色全透明或半透(background)方法
- mysql collect_set_Hive sql 使用group by 字段被限制使用 collect_set/collect_list处理
- php编辑框禁止输入,如何设置表单的input文本框不可编辑
- 计算机毕设Node.js+Vue游戏盒子系统(程序+LW+部署)
- JAVA面向对象第一堂课
- MedCalc:生物医学研究的统计软件 Crack