- 配置数据库基础信息
import{UserModule }from'./user';
import{LogModule }from'./log';
import{Log }from'@/entities/Log';
import{SequelizeModule }from'@nestjs/sequelize';
@Module({
imports:[
SequelizeModule.forRoot({
dialect:'mysql',
// 按数据库实际配置
host:'127.0.0.1',
// 按数据库实际配置
port:3306,
// 按数据库实际配置
username:'root',
// 按数据库实际配置
password:'hello',
// 按数据库实际配置
database:'world',
synchronize:true,
models:[Log],
autoLoadModels:true,
}),
LogModule,
UserModule,
],
})
exportclassAppModule{}
- 实体与数据库一一映射处理
Model,
Table,
Column,
PrimaryKey,
DataType,
}from'sequelize-type';
@Table({tableName:'test_sys_req_log'})
exportclassLogextendsModel<Log>{
@PrimaryKey
@Column({
type:DataType.INTEGER,
autoIncrement:true,
field:'id',
})
id:number;
@Column({field:'content',type:DataType.TEXT})
content:string;
@Column({field:'l_level',type:DataType.INTEGER})
level:number;// 3严重,2危险,1轻微
@Column({field:'l_category'})
category:string;// 模块分类/来源分类
@Column({
field:'l_created_at',
type:DataType.NOW,
defaultValue:getNow,
})
createdAt:number;
@Column({
field:'l_updated_at',
type:DataType.NOW,
defaultValue:getNow,
})
updatedAt:number;
}
- module 注册实体
import{SequelizeModule }from'@nestjs/sequelize';
import{Log }from'@/entities/Log';
importLogServices,{
CreateLogService,
UpdateLogService,
DeleteLogService,
ReadLogService,
}from'@/service/log';
import{
CreateLogController,
RemoveLogController,
UpdateLogController,
}from'@/controller/log';
@Module({
imports:[SequelizeModule.forFeature([Log])],
providers:[
LogServices,
CreateLogService,
UpdateLogService,
DeleteLogService,
ReadLogService,
],
controllers:[CreateLogController,RemoveLogController,UpdateLogController],
})
exportclassLogModule{}
- service 操作数据库处理数据
import{AddLogDto }from'@/dto/log';
import{InjectModel }from'@nestjs/sequelize';
import{ResponseStatus }from'@/types/BaseResponse';
import{getErrRes,getSucVoidRes }from'@/common/response';
@Injectable
exportclassCreateLogService{
constructor(
@InjectModel(Log)
privatelogModel:typeofLog,
){}
asynccreate(createLogDto:AddLogDto):Promise<ResponseStatus<null>>{
console.info('CreateLogService create > ',createLogDto);
const{level =1,content ='',category ='INFO'}=createLogDto ||{};
conststr =content.trim;
if(!str){
returngetErrRes(500,'日志内容为空');
}
constitem ={
level,
category,
// Tips: 为防止外部数据进行数据注入,我们可以对内容进行 encode 处理 。
// content: encodeURIComponent(str),
content:str,
};
awaitthis.logModel.create(item);
returngetSucVoidRes;
}
}
一路操作猛如虎,回头一看嘿嘿嘿~终于 , 我们收到了来自外界的第一条数据! hello world!
文章插图
文章插图
??连接及创建数据成功!此时已经完成基础功能啦~
第三步、实现 CRUD 基础功能
剩下的内容,其实大家可以自行脑补了 , 就是调用数据库的操作逻辑 。先说说什么是 CRUD
- C create 创建
- R read 读取
- U update 更新
- D delete 删除
import{Injectable }from'@nestjs/common';
推荐阅读
- MySQL 5.7废止了?我们暂无计划
- AI不缺概念,甚至不缺技术,但实在缺产品
- Java中,对象一定在堆中分配吗?
- 用IntelliJ IDEA进行前端开发
- MPLS静态配置新手必看!
- 永久不过时的3个追女生套路
- 现在的城镇职工养老保险,还能够一次性补缴15年的费用吗?
- 没得选,游戏进入“开挂”时代
- 为什么中国的白酒在国外火不起来?老外说出原因,让国人感同身受
- 白酒度数越高就越容易辣喉吗?