Files
FastGPT/packages/service/common/mongo/sessionRun.ts
2023-11-09 09:46:57 +08:00

22 lines
509 B
TypeScript

import mongoose, { connectionMongo } from './index';
export async function mongoSessionTask(
fn: (session: mongoose.mongo.ClientSession) => Promise<any>
) {
const session = await connectionMongo.startSession();
try {
session.startTransaction();
await fn(session);
await session.commitTransaction();
await session.endSession();
} catch (error) {
await session.abortTransaction();
await session.endSession();
console.error(error);
return Promise.reject(error);
}
}