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

Node.js+PostgreSQL项目Postman发GET请求报ECONNRESET错误求助

问题根因及修复方案

1. 鉴权中间件未调用next()导致请求挂起

你编写的authorization.js鉴权中间件在token校验通过后,没有执行next()方法将请求传递给后续的路由处理逻辑,会导致请求一直处于待响应状态,超时后Postman就会抛出ECONNRESET错误。

修复方式:在authorization.js的req.user = payload.user;语句后新增一行next()即可,修改后的完整代码如下:

const jwt = require("jsonwebtoken");
require("dotenv").config();
module.exports = async (req, res, next) => {
    try {
        const jwtToken = req.header("token");
        if (!jwtToken) {
            return res.status(403).json("Not Authorized");
        }
        const payload = jwt.verify(jwtToken, process.env.jwtSecret);
        req.user = payload.user; 
        next(); // 校验通过后放行,进入下一个处理逻辑
    } catch (err) {
        console.log(err.message); 
        return res.status(403).json("You are not authorized");
    }
}

2. /is-verify路由的回调参数顺序写反

jwAuth.js文件里的/is-verify路由的异步回调参数,把req和res的顺序写反了,就算中间件正常放行,到这一步也会因为调用对象错误导致响应异常。

修复方式:把参数顺序调整为正确的(req, res)即可,修改后的代码如下:

router.get("/is-verify", authorization, async (req, res) => { // 调整req和res的顺序
    try {
        res.json(true); 
    } catch (err) {
        console.log(err.message); 
        res.status(500).send("Server Error")
    }
})

补充说明:你之前的注册、登录接口可以正常调用,是因为这两个接口没有绑定authorization中间件,所以不会触发上述两个问题。修改完成后重启服务,再调用两个需要鉴权的接口就能正常返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:00:02