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

上传文件时如何获取201状态码?React+Node.js+MongoDB场景

解决方案

状态码201表示资源成功创建,Express默认成功响应的状态码为200,不会自动根据操作类型切换状态码,你需要在后端/addItems接口的路由处理逻辑中手动指定返回状态码,修改步骤如下:

  • 找到后端项目中/addItems对应的POST路由代码
  • 在响应返回前调用status(201)方法指定状态码,示例代码如下:
// 原代码(默认返回200)
app.post('/addItems', upload.single('uploadImg'), async (req, res) => {
  // 文件存储、MongoDB写入逻辑...
  res.json({
    success: true,
    data: saveResult
  })
})

// 修改后代码(返回201)
app.post('/addItems', upload.single('uploadImg'), async (req, res) => {
  try {
    // 文件存储、MongoDB写入逻辑...
    // 写入成功后指定201状态码再返回响应
    res.status(201).json({
      success: true,
      data: saveResult
    })
  } catch (err) {
    // 检测到资源重复时建议返回语义匹配的409状态码,方便前端判断
    if (err.code === 11000) { // MongoDB重复键错误码
      res.status(409).json({
        success: false,
        message: 'Item already exists'
      })
    } else {
      res.status(500).json({
        success: false,
        message: '服务器错误'
      })
    }
  }
})

补充说明:

  • Multer仅负责处理文件上传的解析逻辑,不会修改接口的响应状态码
  • 你前端的判断逻辑可以同步优化,区分接口报错、资源重复、上传成功三种场景,避免误判

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:18:01