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

Express.js无法处理超过6次客户端请求的问题该如何修复?

问题根因

你遇到的现象本质是浏览器对同域名的并发HTTP请求数限制导致的,和Express的配置无关。你的代码存在明显逻辑缺陷:/register/:user 这个POST路由作为异步逻辑,执行完addUser操作后没有主动返回响应、结束HTTP请求,导致每一次调用该接口的请求都会一直处于pending状态,直到浏览器默认超时。

主流浏览器对同域名的并发请求限制大多为6个,因此你连续发起6次未结束的请求后,后续所有同域名请求都会被浏览器阻塞排队;刷新浏览器时所有pending的请求会被主动销毁,限制自然解除,完全符合你描述的现象。

修复方案

不需要调整任何请求数量上限配置,只需要给所有Express路由逻辑都加上响应返回,主动结束请求即可。修改后的接口代码参考:

const app = express();

app.get('/', (req, res) => {
    res.json(getPost('all'))
})

app.post('/register/:user', async (req, res)=>{
   try {
    // 异步逻辑建议加await,避免逻辑异常
    await addUser(req.params.user)
    // 主动返回响应结束请求
    return res.status(200).json({
      code: 0,
      msg: '操作成功'
    })
   } catch (err) {
    // 异常场景也必须返回响应,避免请求挂起
    return res.status(500).json({
      code: 1,
      msg: '操作失败'
    })
   }
})

注意事项

  • 所有Express路由逻辑,不管是成功还是异常分支,都必须确保调用了res.send()/res.json()/res.end()这类结束请求的方法,否则请求会一直挂在服务端和浏览器两端,占用请求连接数。
  • 若使用了异步逻辑,必须做好异常捕获,避免异常抛出后没有走到返回响应的逻辑分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:45:09