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

Node.js POST提交表单遇304错误,页面持续加载无响应求助

Node.js POST表单提交后页面无响应+304错误的解决方案

核心问题与修复方案

1. 数据库连接回调参数缺失

app.js中db.connect的回调未接收err参数,导致代码报错err is not defined,数据库连接逻辑异常,后续操作无法正常执行。

修复后的代码:

db.connect((err)=>{ // 补充err参数
  if(err)
    console.log("Connection Error"+err);
  else
    console.log("Database Connected");
})

2. addProduct函数语法错误(try/catch未闭合)

product-helpers.js中addProduct的try块未正确闭合,catch语句不在try范围内,导致函数语法错误,无法触发回调,请求因未收到响应持续挂起。同时MongoDB插入结果的ID属性是insertedId,原代码写错为_insertedId。

修复后的代码:

addProduct: async (product, callback) => {
  try {  
    console.log('Adding product:', product);
    const db = await connect();
    const collection = db.collection('products');
    const data = await collection.insertOne(product);
    console.log('Product added');
    callback(data.insertedId); // 修正ID属性名
  } catch(err) {
    console.error('Failed to add product:', err);
    callback(null, err); // 回调传递错误信息
  }
},

3. 文件上传路径错误

admin.js中用__dirname(当前routes目录)拼接路径,导致图片上传到routes/public/product-images,而实际public目录在项目根目录,图片无法保存触发错误。

修复后的代码:

// 加../回到项目根目录,指向正确的public文件夹
const uploadPath = path.join(__dirname, '../public/product-images', `${id}.jpg`);

4. 回调逻辑未处理错误

admin.js的POST路由未处理addProduct的错误情况,若数据库操作失败,请求会因无响应持续加载。

修复后的代码:

router.post('/add-product',function(req,res){
  productHelpers.addProduct(req.body,(id, err)=>{
    if(err){
      console.error(err);
      return res.send("添加商品失败");
    }
    if(!req.files?.Image){ // 检查是否有上传文件
      return res.redirect('/admin');
    }
    let image=req.files.Image
    const uploadPath = path.join(__dirname, '../public/product-images', `${id}.jpg`);
    image.mv(uploadPath, (err) => {
      if(!err){
        res.redirect('/admin')
      }else{
        console.error(err);
        res.send("图片上传失败")
      }
    })
  })
})

304错误说明

304是浏览器缓存命中的状态码,你的情况本质是请求未被正确处理,浏览器重复请求触发缓存。解决上述代码错误后,请求能正常完成,304问题会随之消失。

内容的提问来源于stack exchange,提问作者Sohith K S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:30:55