「文件」nestjs使用Typeorm实现数据库CRUD操作( 四 )
const catInfo = await this.catRepo.findOne(id);
if (!catInfo) {
throw new HttpException(`指定 id=${id} 的猫猫不存在`, 404);
}
return catInfo;
}
}
4.3 cat.entity.ts数据库实体文件
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity('cat')
export class Cat {
/**
* 自增主键
*/
@PrimaryGeneratedColumn({
comment: '自增ID'
})
id: number;
/**
* 昵称
*/
@Column({
comment: '昵称'
})
nickname: string;
/**
* 品种
*/
@Column({
comment: '品种'
})
species: string;
}
4.4 cat.module.ts模块文件
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CatController } from './cat.controller';
import { Cat } from './cat.entity';
import { CatService } from './cat.service';
@Module({
imports: [TypeOrmModule.forFeature([Cat])],
controllers: [CatController],
providers: [CatService],
})
export class CatModule { }
5.配置数据库
typeorm可以和各种数据库配合使用 。为了方便调试 , 这里用sqlite3替换掉原案例教程中的Postgresql(否则还要装一个Postgresql数据库) 。
在项目中安装sqlite3驱动 。
> npm i --save sqlite3
在根目录ormconfig.json文件中进行如下配置 。注意 , 原案例中entities的目录在src/文件夹下面 , 实际使用时可能会报错(如果是直接运行TypeScript不会报错 , 如果编译成JavaScript就会报错 , 后面一种情况下需要修改目录到dist或者其他编译目标文件夹下) 。
{
"type": "sqlite",
"database": "./mydb.sql",
"entities": [
"dist/**/**.entity{.ts,.js}"
],
"synchronize": true,
"logging": true
}
6.项目依赖包
项目中依赖的包文件如下 , 其中nestjs cli 已经安装好了一部分 , typeorm等需要手动添加 。
"dependencies": {
"@nestjs/common": "^6.7.2",
"@nestjs/core": "^6.7.2",
"@nestjs/platform-express": "^6.7.2",
"@nestjs/typeorm": "^6.2.0",
"mongodb": "^3.4.1",
"pg": "^7.16.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.0",
"rxjs": "^6.5.3",
"sqlite3": "^4.1.1",
"typeorm": "^0.2.22"
},
"devDependencies": {
"@nestjs/cli": "^6.9.0",
"@nestjs/schematics": "^6.7.0",
"@nestjs/testing": "^6.7.1",
"@types/express": "^4.17.1",
"@types/jest": "^24.0.18",
"@types/node": "^12.7.5",
"@types/supertest": "^2.0.8",
"jest": "^24.9.0",
"prettier": "^1.18.2",
"supertest": "^4.0.2",
"ts-jest": "^24.1.0",
"ts-loader": "^6.1.1",
"ts-node": "^8.4.1",
"tsconfig-paths": "^3.9.0",
"tslint": "^5.20.0",
"typescript": "^3.7.4"
}
7. 其他资源
-typeorm仓库
-Nestjs中文文档
-Jest测试框架中文文档
-github nest学习资源
推荐阅读
- 潍坊晚报|手机使用四年,凌晨自燃吓坏一家人
- 互联网的一些事|QuestMobile:2020 移动互联网人均使用时长同比增长 12.9%
- |为什么使用B+Tree?
- 驱动之家|专利文件曝光华为正开发屏下摄像头手机:正面都是屏
- cnBeta|专利文件暗示华为正在开发屏下隐藏式前摄智能机
- 山东伟豪思|袋料全自动拆垛机器人的使用给企业带来了哪些益处
- 融资微信否认监听用户聊天记录;苹果将投3.3亿美元在台建厂;小鹏汽车秘密提交IPO文件
- 网易网易披露招股文件:过去20年整体年化回报高达26.2%
- 无敌马克兔|使用3个看似简单的挑战,提高摄影技巧,拍摄出不俗的作品
- 摄影小强|存储先行者,光威SSD固态硬盘使用中的小惊喜
