withTransaction
withTransaction: <TRes = any>(
transactionFn: (session: ClientSession) => Promise<TRes>,
): Promise<TRes>
Runs callbacks and automatically commits or rollbacks transaction.
import db from 'db';
const { user, company } = await db.withTransaction(async (session) => {
const createdUser = await usersService.insertOne({ fullName: 'Bahrimchuk' }, {}, { session });
const createdCompany = await companyService.insertOne(
{ users: [createdUser._id] }, {},
{ session },
);
return { user: createdUser, company: createdCompany };
});
Parameters
- transactionFn:
(session: ClientSession) => Promise<TRes>
;
Function that accepts a client session and manages some business logic. Must return a Promise
.
Returns Promise<TRes>
.