app.all(*)即使在发布请求后也返回entrire html

时间:2020-09-13 03:00:47

标签: node.js express

我在快递路线中使用<input type="text" class="form-control" name="dinner" value={{ dinner_info[0]['dinner_name'] }}> 发送app.all(*)页面。所以在我所有路线的尽头,我都有:

pagenotfound.html

我正在使用jquery ajax发送发布请求,发现如果到发布请求的路由不存在,它将把整个html页面发送到我的成功回调函数。

app.all('*',security.isLoggedIn, (req, res, next) => {
    res.render("pageNotFound.ejs")
})

我知道我可以改变所有的快递来发送类似的内容

$.ajax({
  type:"POST",
  url:"/urlThatDoesNotExist",
  success:function(data){
     //data = ENTIRE HTML FILE
  }
})

但这意味着我无法向他们显示pageNotFound.html页面。

是否有办法分别捕获所有发布路线和捕获所有获得路线?我不确定你们如何在应用程序中处理它。

1 个答案:

答案 0 :(得分:1)

您可以使用app.use()。 您需要做的就是将其放在所有路线的末端并在那里处理。 您可以使用req.method检查它是哪种方法,然后进行处理。

app.use((req, res, next) => {
  if (req.method === 'GET')
    handleGet()
  else if (req.method === 'POST')
    handlePost()
  else 
    handleRequests()
})