特快专递请求给出 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的主要内容,如果未能解决你的问题,请参考以下文章

基本特快路线

中国鲜花专递网倒了

中国鲜花专递网倒了

中国鲜花专递网倒了

中国鲜花专递网倒了

loj #6091. 「Codeforces Round #418」幻想特快