Heim > Fragen und Antworten > Hauptteil
P粉2014488982023-08-19 10:18:35
您的代码涉及到对数据库的三个不同交互,用于单个更新操作:
ReportModel.findOne()
ReportModel.update()
ReportModel.findOne()
减少数据库查询可以完成任务并提高性能。
**您修复后的代码:**
export const update = async(req: Request, res: Response, next: NextFunction) => { try { const reportId = parseInt(req.params.id); const { name, age, info } = req.body; // 执行更新并获取受影响的行数 const [numberOfAffectedRows] = await ReportModel.update({ name, age, info }, { where: { id: reportId }, // 此标志检查更新函数是否返回更新后的对象 returning: true }); // 检查实体是否被找到和更新 if (numberOfAffectedRows === 0) { return next(new EntityNotExistError("报告不存在")); } // 获取更新后的报告 const updatedReport = await ReportModel.findOne({ where: { id: reportId } }); return res.json({ message: "报告已成功编辑", report: updatedReport }); } catch (error) { return next(error); } }