首页 > 解决方案 > 来自 withTransaction 回调的 Mongoose 返回值

问题描述

我想利用猫鼬的withTransaction助手,特别是因为它能够自动重试瞬态事务错误。withTransaction但是,助手似乎无法返回数据,这对我来说是个问题。

我的代码如下所示:

import { startSession } from 'mongoose';

async addItem(itemData) {
    const session = await startSession();
 
    session.startTransaction();
    try {
        const item = await new Item({ itemData }).save({ session });
        
        // a bunch of other async operations...

       await session.commitTransaction();
       session.endSession();

       return item;
    } catch (error) {
        await session.abortTransaction();
        session.endSession();
        throw error;
    }
}

我怎样才能(1)使用withTransaction帮助程序,但仍然让这个函数item像当前一样返回 ,或者(2)通过使用withTransaction.

标签: javascriptnode.jsmongodbmongoosetransactions

解决方案


这似乎是节点驱动程序中的一个已知问题。该票证中提供了一些解决方法。


推荐阅读