特快专递请求给出 ERR_EMPTY_RESPONSE
Posted
技术标签:
【中文标题】特快专递请求给出 ERR_EMPTY_RESPONSE【英文标题】:Express post request gives ERR_EMPTY_RESPONSE 【发布时间】:2018-02-03 04:48:39 【问题描述】:我正在构建一个 node.js 和 express.js 网络应用程序,当发布请求的时间超过 2 分钟时,它无法按预期工作。
发生的情况是,在 2 分钟后,我的 express
路由被重新调用,然后,再过 2 分钟(总共 4 分钟),我在该发布请求的网络选项卡中收到此错误:
net::ERR_EMPTY_RESPONSE
我读到express
的默认超时设置为 2 分钟,但这仅适用于获取请求...
这是我的路线:
const router = express.Router();
router.post('/', authenticate, async (req, res) =>
console.log('here');
setTimeout(function()
res.status(201).json(success: true);
, 400000);
)
当我发出 post 请求时,它会在控制台打印 here
,然后在 2 分钟后再次打印 here
。
这是我来自服务器的index
文件:
const app = express();
app.use(bodyParser.json(limit: '50mb'));
const compiler = webpack(webpackConfig);
app.use(webpackMiddleware(compiler,
hot: true,
publicPath: webpackConfig.output.publicPath,
noInfo: true
));
app.use(webpackHotMiddleware(compiler));
app.get('/*', (req, res) =>
res.sendFile(path.join(__dirname, './index.html'));
);
app.listen(3000, () => console.log('Running on localhost:3000'));
app.timeout = 700000;
自从我遇到这个问题以来已经有 2 周了,任何想法或解决方案都会对我有很大帮助。如果我需要提供更多详细信息,请告诉我。
【问题讨论】:
将.catch(err => console.log(err))
添加到您的webAuditsFailures
通话中。查看一些错误可能会有所帮助。
喜欢这个? response.catch(err => console.log(err));
webAuditsFailures(req).then((response) => ... ).catch((err) => console.log(err));
控制台中没有出现错误
所以我会把一些console.log(...)
一直放在webAuditsFailures
中,以便知道您的请求被卡在哪里。可能在waComplianceBusiness
/ waRuleOverview
/ waConditionOverview
之一内
【参考方案1】:
我通过删除 Web 浏览器的超时解决了我的问题,如下所述: https://github.com/expressjs/express/issues/2174
【讨论】:
以上是关于特快专递请求给出 ERR_EMPTY_RESPONSE的主要内容,如果未能解决你的问题,请参考以下文章