nest.js团队选用TypeORM作为与数据库互动的库,TypeORM也是以Typescript开源的项目
nest.js里使用TypeORM先要安装下列套件
yarn add @nestjs/typeorm typeorm
再来根据选用的数据库,到TypeORM Github,额外安装套件
例如这里选用Mysql
npm install mysql -g
在项目根目录下新建ormconfig.json文件,如下:
{
"type": "mysql",
"host": "localhost",
"port": 3306
"username": "root", //输入你的mysql账号
"password": "xxx", // 密码
"database": "demo-nest", // 指定数据库名称
"synchronize": true,
"logging": false,
"entities": [ // mapping class的放的位置,指定放在shared下
"src/shared/entity/**/*.ts"
],
"migrations": [ // 存放数据库版本管控(migration)的目录,指定放在shared下
"src/shared/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": { //预设使用CLI产生档案的目录,指定放在shared文件夹下
"entitiesDir": "src/shared/entity",
"migrationsDir": "src/shared/migration",
"subscribersDir": "src/shared/subscriber"
}
}
利用CLI建立第一个Entity Class
2018110903.pngtypeorm entity:create -n Platform
import {Entity, PrimaryGeneratedColum} from "typeorm";
@Entity()
export class Platform {
@PrimaryGeneratedColumn() //建立table需要primary key
id: number;
}
在app.module.ts import TypeOrmModule
app.module.ts
...
import {TypeOrmModule} from '@nestjs/typeorm';
@Module({
imports: [
SharedModule,
TypeOrmModule.forRoot(),
],
...
因为我这里用的是mac 然后我装的mysql图形化管理工具是Sequel Pro,打开Sequel Pro 新建 demo-nest Databases数据库,
然后运行:
npm run start: dev
然后在Sequel Pro可以看到新建的platform table表:
2018111201.png
tuiguang.png推荐一下我的公众号: 【 geekjc 】,微信号: 【 c8706288 】一起学习交流编程知识,分享经验,各种有趣的事。
网友评论