在请求完成之前,Express抛出错误

时间:2017-10-31 03:57:19

标签: javascript node.js express axios http-get

我正在尝试查询数据库并在将结果呈现到模板之前将结果返回到express。目前,我正在使用Axios并向localhost:3000/api/endpoint发送请求。我已经验证了端点是通过postman工作的,它从MongoDB返回我想要的东西。

我的网络服务器代码如下所示:

app.get('/post/:id', (req, res) => {

  axios.get(`localhost:3000/post/${req.params.id}`)
  .then((response) => {
    console.log(response);
    res.render('post', { content: response.content });
  })
  .catch((err) => {
    console.log(err);
    res.render('404', { error: err });
  });
});

出于某种原因,axios(或express)不等待API返回响应,而是跳转到catch并返回404页面。我不确定它为什么会这样。

注意 - 返回的错误是:ECONNRESET或socket hang up

如何修复它,以便快速(或axios)等待API查询完成,然后再在页面上呈现?

1 个答案:

答案 0 :(得分:0)

感谢dhilt的回答。将localhost更改为http://localhost可以解决问题,现在它可以正常运行。