连接Mysql ( TypeORM )
本地下载部署一个mysql, 或者购买云数据库,并在本地安装数据库可视化工具。
TypeORM
TypeORM 是 node.js 现有社区最成熟的对象关系映射器(ORM )。Midway 和 TypeORM 搭配,使开发更简单。
安装组件
npm i @midwayjs/typeorm@3 typeorm --save
引入组件
在 src/configuration.ts 引入 orm 组件,示例如下
import { Configuration } from '@midwayjs/decorator'; import { ILifeCycle } from '@midwayjs/core'; import * as faas from '@midwayjs/faas'; import * as defaultConfig from './config/config.default'; import * as prodConfig from './config/config.prod'; import * as orm from '@midwayjs/orm'; import * as validate from '@midwayjs/validate'; @Configuration({ imports: [faas, orm, validate], importConfigs: [ { default: defaultConfig, prod: prodConfig, }, ], conflictCheck: true, }) export class ContainerLifeCycle implements ILifeCycle { async onReady() {} }
安装数据库 Driver
常用数据库驱动如下,选择你对应连接的数据库类型安装:
# for MySQL or MariaDB,也可以使用 mysql2 替代 npm install mysql --save npm install mysql2 --save # for PostgreSQL or CockroachDB npm install pg --save # for SQLite npm install sqlite3 --save # for Microsoft SQL Server npm install mssql --save # for sql.js npm install sql.js --save # for Oracle npm install oracledb --save # for MongoDB(experimental) npm install mongodb --save
链接数据库
在 src/config/config.default.ts 中配置连接信息和实体模
import { MidwayConfig } from '@midwayjs/core'; import { Schema } from '../entity/schema'; export default { orm: { type: 'mysql', host: '', port: , username: '账号名', password: '账号密码', database: '', synchronize: true, // 如果第一次使用,不存在表,有同步的需求可以写 true * logging: false, // 配置实体模型 entities: [Schema], }, } as MidwayConfig;
配置完成之后再次运行项目,如果没有报错,证明数据库连接成功了!
entity
在src下创建一个 entity 文件夹,放置数据库表的模型,创建一个ts文件并写入以下代码:
// entity/schema.ts import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; // 需要将此class名称加到 src/config/config.default.ts 中 entities 中 @Entity() export class Schema { @PrimaryGeneratedColumn() id: number; @Column('text') content: string; // 内容 @Column() creater: string; // 创建人 @Column() creatAt: string; // 创建时间 @Column() address: string; // 地址 }
运行项目,使用 数据库可视化工具Q,就可以看到这个表创建成功了!