Nodejs之NestJS之TypeORM使用
node下的TypeORM比上不足,比下有余,这里分享一些使用经验
一、入口
TypeORM提供的入口很多,connection,entityManager,repo,使用的时候难免纠结用什么,这里建议统一使用entityManager:
getManager()
二、事务
建议封装事务,动态传入entityManager,方便复用和测试:
import {
EntityManager, getManager } from 'typeorm';
import {
IsolationLevel } from 'typeorm/driver/types/IsolationLevel';
export const runInTransaction = async (callback: any, options?: any) => {
const connectionName = options?.connectionName ?? 'default';
const isolationLevel: IsolationLevel | undefined = options?.isolationLevel;
if (!options?.entityManager) {
await getManager(connectionName).transaction(
isolationLevel,
async (entityManager: EntityManager) => await callback(entityManager),
);
} else {
await callback(options?.entityManager);