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

使用Bootstrap+Express开发PDF合并工具时上传按钮失效求助

解决PDF合并工具上传按钮失效及报错问题

从报错截图来看,核心问题是前端请求POST /merge接口返回404,且后端返回了HTML页面而非JSON,导致前端解析失败。按以下步骤排查修复:

  • 检查后端路由配置
    打开项目的Express路由文件(比如routes/index.js或app.js),确认是否存在POST /merge的路由定义。如果没有,添加对应的路由处理:

    const express = require('express');
    const router = express.Router();
    const multer = require('multer'); // 处理文件上传的中间件
    const upload = multer({ dest: 'uploads/' }); // 配置上传文件存储目录
    
    router.post('/merge', upload.array('pdfs'), (req, res) => {
      // 这里编写PDF合并逻辑
      // 注意返回JSON格式响应
      res.json({ success: true, message: '合并成功' });
    });
    
    module.exports = router;
    

    同时确保在app.js中挂载了这个路由:app.use('/', router);

  • 验证前端请求地址
    检查前端发起请求的代码(比如script.js),确认请求的URL是/merge,没有拼写错误或额外前缀。示例fetch请求代码:

    fetch('/merge', {
      method: 'POST',
      body: formData
    })
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(err => console.error(err));
    
  • 配置文件上传中间件
    确认项目已安装multer依赖(未安装则执行npm install multer),并且正确配置了文件上传的存储目录,确保目录存在且有读写权限。

  • 修复后端响应格式
    即使接口报错,后端也要返回JSON格式的错误信息,避免返回HTML。示例错误处理逻辑:

    router.post('/merge', upload.array('pdfs'), (req, res) => {
      try {
        // 合并逻辑
        res.json({ success: true, result: '合并后的PDF路径' });
      } catch (err) {
        res.status(500).json({ success: false, error: err.message });
      }
    });
    
  • 调试请求链路
    启动后端时开启调试日志,比如在app.js中添加app.use(express.logger('dev'));,查看请求是否到达后端,以及路由匹配情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:37:12