代码拉取完成,页面将自动刷新
typeorm
数据库连接管理库。
API
connect(config)
: 连接数据库, 其中 config
是一个 JSON
形式, 配置如下:
logger?: ILoggerOption
: 日志选项, 默认为: true
connections
: JSON
形式的连接配置, key
表示连接的名称, value
- 表示 DataSource Options
// 1. 普通连接
await connect({
default: {
url: "mysql://root:x@x.x.x.x:3306/x",
entityPrefix: "sl_site_",
entities: Object.values(entities),
},
});
// 2. 读写分离支持
await connect({
default: {
entityPrefix: "sl_site_",
entities: Object.values(entities),
replication: {
// 配置读写数据库
master: {
url: "mysql://root:x@x.x.x.x:3306/x",
},
// 配置只读数据库
slaves: [
{
url: "mysql://root:x@x.x.x.x:3306/x",
},
],
},
},
});
dataSource(entityOrAlias)
: 参数为 typeorm
的实体对象或者是连接名称, 例如: default
;返回 typeorm
的 DataSource
对象
manager(entityOrAlias)
: 获取 EntityManager
对象
destroy(alias)
: 断开某个数据库连接: await destroy('default')
destroyAll()
: 断开所有的数据库连接
import { connect, manager, BaseDataEntity } from 'typeorm-connnection'
/**
* 登录记录表
*/
@Entity({ name: 'login_record' })
export class LoginRecord extends BaseDataEntity {
@Column({ type: 'bigint', name: 'user_id', unsigned: true })
public userId: number;
@Column({ type: 'varchar', length: 50, nullable: true })
public ip: string;
@Column({ type: 'varchar', name: 'user_agent', length: 500, nullable: true })
public userAgent: string;
/** 登录的平台,wxh5-公众号,h5-网页 */
@Column({ type: 'varchar', length: 20, default: 'wxh5', comment: '登录的平台,wxh5-公众号,h5-网页' })
public platform: string;
}
// 1. 连接数据库
await connect({
default: {
url: 'mysql://root:x@x.x.x.x:3306/x',
entityPrefix: 'sl_site_',
entities: [LoginRecord]
},
})
const em = manager('default') // manager(LoginRecord)
// 查询数据
const record = await em.findOneBy(LoginRecord, { id: 1 });
await connect({ logger: true, ... })
await connect({ logger: console, ... })
await connect({ logger: Pino(), ... }) // 使用 Pino 记录日志
logger
选项可以为普通的日志记录对象,具有 info
、warn
、error
函数;或者是一个 typeorm
的自定义日志对象。
fastify
中使用import { register_fastify } from "typeorm-connection";
const app = fastify();
register_fastify(app, {
url: "mysql://root:x@x.x.x.x:3306/x",
entityPrefix: "sl_site_",
entities: [LoginRecord],
});
提供基础的数据实体类 BaseDataEntity
,该实体类,包含 3 个基础的字段:
id
: 自增长的 id
createTime
: Date
对应的数据库字段为:create_time
updateTime
: Date
对应的数据库字段为: update_time
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。