「埃尔法哥哥」nestjs使用Typeorm实现数据库CRUD操作( 四 )


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测试框架中文文档
【「埃尔法哥哥」nestjs使用Typeorm实现数据库CRUD操作】-github nest学习资源