You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用TYPEORM更新数据库条目?PUT路由返回500错误如何解决?

问题根因

你遇到的500错误核心是控制器中TypeORM的update方法调用不符合规范:
TypeORM实体的静态update方法第一个参数要求传入匹配目标记录的查询条件对象,你直接传入了字符串类型的name参数,方法无法解析查询逻辑直接抛出异常,触发500返回。

修复方案

修改控制器中update方法的入参即可,修改后的代码如下:

const updateSub = async (req: Request, res: Response) => {
  const name = req.params.name
  const { description, title } = req.body
  
  try {
    // 第一个参数改为匹配name字段的查询对象
    const subUpdate = await Sub.update({ name }, { description, title })
    return res.json(subUpdate)
  } catch (err) {
    console.log(err)
    return res.status(500).json({ error: 'Something went wrong' })
  }
}
可选优化建议
  • 可以先查询目标Sub记录是否存在,不存在时直接返回404错误,给前端更明确的提示,也能避免无意义的更新操作
  • 可以对入参title做非空校验,你的Sub实体中title字段没有设置nullable属性,传空值会触发数据库层面的报错

内容的提问来源于stack exchange,提问作者rightengineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:54:04