Maison > Questions et réponses > le corps du texte
P粉2014488982023-08-19 10:18:35
Votre code implique trois interactions différentes avec la base de données pour une seule opération de mise à jour :
ReportModel.findOne()
ReportModel.update()
ReportModel.findOne()
La réduction des requêtes de base de données fait le travail et améliore les performances.
**Votre code fixe :**
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); } }