以下是我引用的代码,

axios.get('http://localhost:1337/') 
.then( response => { 
var dataSet = response.data; 
 
// URL Handle for Data page 
app.get('/data', (req, res) => { 
     res.render('data', { 
         data = dataSet 
     }); 
}); 
 
}) 
.catch( error => { 
   console.log('An error occurred: ' + error); 
}); 
 
// URL Handle for Contact page 
app.get('/contact', (req, res) => { 
   res.render('contact'); 
}); 
 
// URL Handle for Error page 
app.all('*', (req, res) => { 
   res.render('error'); 
}); 

现在,当我使用 Axios 从数据库获取响应时,我还会在想要 API 响应的所需页面中呈现数据。

但是当我使用“app.all”处理程序处理错误的 URL 句柄时,会出现问题,它会重定向到错误页面。

我需要一个解决方案,其中可以将异常添加到“app.all”处理程序中,并且只要句柄是“/data”,它就不会重定向到“/error”。

请您参考如下方法:

看起来 /data 的路由是在 axios 的异步调用完成后注册的。

尝试将 axios 调用放入路由处理程序

app.get('/data', (req, res) => { 
  axios.get('http://localhost:1337/').then( response => { 
    var dataSet = response.data; 
    res.render('data', { 
      data: dataSet 
    }); 
  }) 
  .catch( error => { 
    console.log('An error occurred: ' + error); 
  }); 
}); 
 
 
// URL Handle for Contact page 
app.get('/contact', (req, res) => { 
  res.render('contact'); 
}); 
 
// URL Handle for Error page 
app.all('*', (req, res) => { 
  res.render('error'); 
}); 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!