javascript - 来自 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
.
解决方案
这似乎是节点驱动程序中的一个已知问题。该票证中提供了一些解决方法。
推荐阅读
- git - 如何计算 git 存储库中功能分支的“提前期”?
- excel - Office.js 将自定义 XML 标记添加到 TableColumn
- node.js - 是什么导致了我的 Node.js 负载均衡器中的内存泄漏?
- git - 无法标记 SCM Maven 发布 Jenkins GitHub
- css - 如何在scss中存储和使用元素的长度?
- python - 从 GEOJSON 文件中检索数据值并输入到 .py 文件中的公式中
- c - 移动命令中的多线程死锁
- python - 如何覆盖 Keras、Tensorflow 中优化算法的梯度向量计算方法?
- typescript - 使用 TypeScript 定义类型的键作为属性类型
- python - KeyError:尝试模拟 DynamoDB 时的“操作”