【问题标题】:How do I use express middleware to act as an API responder?如何使用 express 中间件充当 API 响应者?
【发布时间】:2014-07-06 05:47:17
【问题描述】:

我的路线定义是:

app.put '/api/v1/user/oldest', userController.oldestAndUpdate, responder

userController,我有:

exports.oldestAndUpdate = (req, res, next) ->
  doSomeStuff, (err, results) ->
    return next err if err
    req.apiResponse = results
    next()

在我的responder 中,我有:

module.exports = (req, res, next) ->
  response = req.apiResponse
  response.status = 'ok'

  res.json response

但是我该如何处理错误情况呢?如果next(err) 被点击,我的响应者如何知道有错误?

【问题讨论】:

  • 仅供参考,如果您将代码发布在 JS 中,您会得到更多回复

标签: express coffeescript middleware


【解决方案1】:

如果有错误传递给next,中间件链和路由将停止,并直接跳到错误处理中间件。

错误处理中间件很特别,因为它有四个参数:err、req、res、next。在内部,express 检查每个中间件处理程序的 arity(参数数量),如果它有 4 个,则将其用作错误处理程序。从这里,您可以以与 API 的其余部分相同的方式进行响应。

expressjs guide 中有一个示例错误处理程序。

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2016-02-14
    • 2020-02-03
    相关资源
    最近更新 更多