让前端飞Web前端之路

Nest.js学习之路(14)- TypeORM库(1)存取 i

2019-06-17  本文已影响4人  cbw100

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

typeorm entity:create -n Platform

2018110903.png
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

推荐一下我的公众号: 【 geekjc 】,微信号: 【 c8706288 】一起学习交流编程知识,分享经验,各种有趣的事。

tuiguang.png
上一篇下一篇

猜你喜欢

热点阅读