【问题标题】:Express: How to pass request to specific handler?Express:如何将请求传递给特定的处理程序?
【发布时间】:2016-07-20 13:46:23
【问题描述】:

在我的 Express 应用程序中,我在根路径上有一个 all('/', ...)。在这里,我检查一个失败标志并希望将请求传递给next 处理程序,或者如果出现问题,例如无法建立数据库连接,或者我想将请求直接传递给/error 路由但我不想重定向。

可以直接向/error 表达请求,还是我必须显式调用该路由的处理程序?

app = express()
var errors = ...

app.all('/', (req, res, next) => {
  if(errors) {
    // route to /error
  } else {
    next()
  }
})

app.get('/error', (req, res, next) => { ... })

【问题讨论】:

    标签: node.js express routing


    【解决方案1】:

    您可以单独为您的错误路由定义处理程序并直接调用它而不是调用 next,但您真正想要的是define error handling middleware。比如:

    app.all('/', (req, res, next) => {
      if(errors) {
        next(errors)
      } else {
        next()
      }
    })
    app.use((err, req, res, next) => { ... })
    

    【讨论】:

    • 谢谢!这正是我要找的!
    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 2013-11-26
    • 2016-01-31
    相关资源
    最近更新 更多