RangeError:无效状态代码:Express App中的0 - 会话问题?

时间:2016-08-29 15:47:28

标签: javascript node.js session express

我在快递应用上有这个随机错误:

_http_server.js:192
    throw new RangeError(`Invalid status code: ${statusCode}`);
    ^

RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse.writeHead (/project-folder/node_modules/express-session/node_modules/on-headers/index.js:55:19)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.OutgoingMessage.end (_http_outgoing.js:573:10)
    at writeend (/project-folder/node_modules/express-session/index.js:257:22)
    at Immediate.onsave [as _onImmediate] (/project-folder/node_modules/express-session/index.js:325:11)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

我尝试通过做这样的事情来解决它而没有运气:

app.use(function(req, res, next) {
    req.on("end", function() {
        if (res.statusCode < 100 && res.statusCode >= 600) {
          res.status(500);          
        }
    });
    next();
});

我不知道在哪里找到错误或至少放一个try catch,错误是随机的,跟踪不是很明确。

欢迎任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

在我在localhost上托管开发和测试的两个项目之间切换时,我看到了类似的错误。在浏览器中手动删除localhost的cookie解决了我的问题。 我用你的功能找出来了。打印出所有请求的req.headers使我意识到在localhost上的不同项目之间切换时cookie是持久的。