yarn add -g @nestjs/cli
nest new project-name
yarn run start
yarn start:dev
监听文件变化,自动重启服务nest-cli
快速创建service/controller, 会自动引入Module中nest g [文件类型] [文件名] [文件目录(src目录下)]
官网下载安装,具体步骤可参考菜鸟教程
【常见基本命令】
- mysql -u root -p //登陆本地mysql 的root账号, -p表示要输入密码
> show databases; //展示所有的数据库
> show tables; //展示所有的表
> create database databaseName; //创建数据库
基于nestjs和typescript的ORM
yarn add -D prisma
/prisma/schema.prisma
npx prisma init
(npx 是npm 的一个包执行器)schema.prisma
,主要包括以下三方面:
datasource db {
provider = "mysql". //哪种数据库
url = "file:dev.db" //数据库url
}
generator client {
provider = "prisma-client-js"
}
model User {
id Int @id @default(autoincrement())
email String @unique
name 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
import { Module, Global } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Global() // 定义全局之后,任何模块都可以直接使用prismaService
@Module({
providers: [PrismaService],
exports: [PrismaService],
})
export class PrismaModule {}
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();
});
}
}
swagger: 一种基于RESTApi的工具,可生成交互式的api 文档
yarn add @nestjs/swagger swagger-ui-express
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