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

Node.js控制器未接收用户ID,编辑页面无法加载用户数据

问题解决:编辑用户页面无法加载数据

核心问题:ID获取方式错误

你的路由是GET /editUser/:id,属于URL路径参数,不能用req.body.id获取,req.body仅用于POST/PUT等请求的表单或JSON数据。正确的获取方式是req.params.id。

修正后的控制器代码

static async editUser(req, res) {
    // 从URL参数中获取ID
    const id = req.params.id;
    console.log("ID: ", id);
    
    try {
        const user = await User.findOne({ where: { id: id }, raw: true });
        
        // 处理用户不存在的情况
        if (!user) {
            return res.status(404).send("用户不存在");
        }
        
        res.render('editUser', { user });
    } catch (err) {
        console.error("获取用户数据失败:", err);
        res.status(500).send("服务器错误");
    }
}

额外优化建议

  1. 编辑页面增加空值判断:避免因user为undefined导致模板渲染报错,可在页面中添加条件判断:
{{#if user}}
<h1>Editar o usuário {{user.name}}</h1>
<form action="/editUser/{{user.id}}" method="post" class="d-flex align-items-center justify-content-center flex-column p-2 m-2 ">
  <input type="hidden" name="id" value="{{user.id}}">
  <!-- 表单内容 -->
</form>
{{else}}
<p>未找到该用户</p>
{{/if}}
  1. 检查路由与表单提交的对应关系:确保POST请求的编辑接口(/editUser/:id)已正确配置,用于处理表单提交后的更新逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:30:35