云函数中使用事务,在提交的数据中增加_openid字段,但事务提交后_openid字段没有生成。同样的代码,不用事务就可以正常增加_openid字段。有开发者遇到类似问题吗?还有在事务中使用db.serverDate()会报错。
如下是云函数代码:
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
try {
const transaction = await db.startTransaction()
// generate order record
let trade_no = ‘ABCD1234’
let order = {
_id: trade_no,
_openid: wxContext.OPENID,
status: 0,
create_date: new Date(),
// create_date: db.serverDate(), // 报错:invalid key offset
}
await transaction.collection(‘test’).add({ data: order })
await transaction.commit()
console.log(`transaction1 succeeded`)
return {
success: true,
}
} catch (e) {
console.error(`transaction error`, e)
return {
success: false,
}
}
}