Express post request gives ERR_EMPTY_RESPONSE

荒凉一梦 提交于 2019-12-04 03:40:08

问题


I'm building a node.js and express.js web app and it doesn't works as expected when a post request takes longer than 2 mins.
What happens is that after 2 mins my express route is re-called and then, after another 2 mins (4 mins in total) I get this error in the network tab for that post request:

net::ERR_EMPTY_RESPONSE

I read that express has a default timeout set to 2 mins, but that applies only to get requests...

This is my route:

const router = express.Router();

router.post('/', authenticate, async (req, res) => {
  console.log('here');
  setTimeout(function() {
    res.status(201).json({success: true});   
  }, 400000);
})

It prints here to the console when I make the post request, and then it prints again here after 2 minutes.

This is my index file from server:

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;

There are already 2 weeks since I'm facing this issue and any ideas or solutions would help me a lot. Please let me know if I need to provide more details.


回答1:


I fixed my issue by removing the web browser's timeout as explained here: https://github.com/expressjs/express/issues/2174



来源:https://stackoverflow.com/questions/45876257/express-post-request-gives-err-empty-response

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!