为什么在交易中不读取退货



我的代码如下:

public async update(params: any) {
await Database.transaction(async (trx) => {
const data = await Period.findOrFail(params.id, { client: trx })
data.from = params.from
data.to = params.to
data.desc = params.desc
data.useTransaction(trx)
await data.save()
let arrFiles = []
for (let i in params.file_names) {
arrFiles.push({
fileName: Date.now() + '_' + params.file_names[i],
fileUri: params.file_uris[i],
createdBy: params.created_by,
})
}
await period
.related('files')
.updateOrCreateMany(arrFiles, 'fileUrl', { client: trx })
await File.query()
.whereIn('id', params.removed_file_id)
.useTransaction(trx)
.delete()
return { success: true }
})
}

我在findOrFailsaveupdateOrCreateManydelete中有trx。但如果我运行查询,它不会读取return { success: true }

trx添加到更新过程中是否有问题?

如果我在控制台的预览选项卡上检查,itu返回空对象,没有属性。而更新进程成功。我签入了数据库的表,它成功地创建、删除了&使现代化是否应返回{ success: true }

我该如何解决这个问题?

请帮忙。感谢

注:我遵循以下参考:https://docs.adonisjs.com/guides/database/transactions

您的函数是一个void函数,因此它什么都不做。添加返回语句将解决此问题。

public async update(params: any) {
return Database.transaction(async (trx) => {
const data = await Period.findOrFail(params.id, { client: trx })
data.from = params.from
data.to = params.to
data.desc = params.desc
data.useTransaction(trx)
await data.save()
let arrFiles = []
for (let i in params.file_names) {
arrFiles.push({
fileName: Date.now() + '_' + params.file_names[i],
fileUri: params.file_uris[i],
createdBy: params.created_by,
})
}
await period
.related('files')
.updateOrCreateMany(arrFiles, 'fileUrl', { client: trx })
await File.query()
.whereIn('id', params.removed_file_id)
.useTransaction(trx)
.delete()
return { success: true }
})
}

最新更新