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

重启服务器后登录请求报Failed to fetch错误该如何排查解决?

问题排查方案

1. 优先修复后端接口无异常响应的问题

你当前的/api/user/get接口catch块仅打印错误日志,没有给前端返回响应,一旦代码逻辑抛出异常进入catch块,前端请求会因为无响应超时报Failed to fetch,这是你当前报错最直接的诱因。
请先修改后端接口的catch块:

catch(e) {
  console.log(e)
  // 新增错误响应返回
  return res.send('{"error": {"isError": true, "message": "服务器内部错误:" + e.message}}')
}

修改后复现问题,查看前端弹出的错误提示,即可定位具体触发的异常类型。

2. 重点排查session存储配置异常

你代码中使用了req.session存储登录态,如果你使用的是express-session默认的内存存储方案:

  • 重启服务器后所有内存存储的session数据会全部清空
  • 内存存储在并发访问、服务重启场景下极易出现访问异常,触发代码报错进入catch块
    建议优先将session存储替换为redis、MongoDB等持久化存储方案,同时检查session配置的secret、cookie.domain、secure等参数是否固定,不会随服务重启发生变动。

3. 排查数据库连接异常

重启服务器后如果数据库连接未成功重连,执行userdb.findOne()等数据库操作时会直接抛出异常,进入未返回响应的catch块导致前端报错。你可以在重启服务后先查看后端控制台的初始化日志,确认数据库连接状态正常,也可以在catch块的打印日志中查看是否有数据库相关报错。

4. 前端代码优化(避免额外异常)

你当前用模板字符串拼接JSON请求体的方式存在风险,如果账号密码包含双引号、转义字符会破坏JSON格式导致请求参数异常,建议改为标准的JSON.stringify构造请求体:

// validation函数中替换原data构造逻辑
let data = JSON.stringify({
  email: email,
  password: password
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:39:04