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

无法将正确user_id写入posts表:存入值始终为0的问题

问题排查方案

针对创建帖子时user_id始终为0的问题,按以下步骤逐一排查:

  • 确认前端请求是否正确携带user_id
    在前端addPost函数里打印待发送数据,同时查看浏览器Network面板的POST请求Payload:

    const addPost = async () => {
        const postData = {
            user_id: user.result[0].id,
            content: formValues.content,
            adress: formValues.adress
        };
        console.log('待发送数据:', postData); // 确认此处user_id是否为预期值
        await axios.post('http://localhost:3001/CreateAds', postData);
    }
    

    如果控制台和Network里的user_id都正确,再排查后端;若此处就异常,需检查AuthContext中的用户数据是否正常。

  • 检查后端是否正确接收并解析请求体
    首先确保Express项目配置了解析JSON请求体的中间件,否则req.body会为空,导致user_id为undefined,插入数据库时会使用默认值0:

    // 在后端入口文件添加该中间件
    app.use(express.json());
    

    然后在接口中打印完整请求体,确认是否接收到user_id:

    app.post('/CreateAds', (req, res) => {
        console.log('接收的请求体:', req.body); // 确认user_id是否存在且正确
        const user_id = req.body.user_id;
        const content = req.body.content;
        const adress = req.body.adress;
        db.query("INSERT INTO posts(user_id,content,adress) VALUES (?,?,?)", [user_id, content, adress], (err, result) => {
            // 后续结果处理代码
        });
    });
    
  • 检查数据库字段配置
    确认posts表的user_id字段是否错误设置了默认值0,同时字段类型需与前端传入的id类型匹配(比如前端传数字,数据库用INT类型)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:35:11