当我同时从前端(react)向后端(nodejs)发送多个请求时,服务器给我这个错误MongoError: WriteConflict。当我想要更新数据库中的一些数据时,我正在使用transaction:
代码:
const db = require("../../utils/database-connection/database");
const FollowersFollowing = require("../../models/followers-following/followers-following-models");
const session = db.client().startSession();
session.startTransaction();
let whoFollowed;
try {
whoFollowed = await FollowersFollowing.updateFollow(
userId,
targetUserId,
{ session },
"follow"
);
await Notice.updateNotice(
userId,
targetUserId,
{ session },
"showUserOnTargetUserNotice"
);
await session.commitTransaction();
session.endSession();
} catch (error) {
console.log(error);
await session.abortTransaction();
return next(
new HttpError("could not follow the user, please try again.", 500)
);
}一切正常,但当我想发送多个请求(仅用于测试)时,服务器会抛出此错误。
发布于 2020-12-08 01:01:08
有关正确的使用模式,请参阅https://docs.mongodb.com/manual/core/transactions/。您必须重试这些错误,withTransaction帮助器会为您执行此操作。
https://stackoverflow.com/questions/65171579
复制相似问题