【问题标题】:Custom middleware for express routes快速路由的自定义中间件
【发布时间】:2020-07-25 17:56:01
【问题描述】:

我实际上在 expressJs 应用程序中实现了一个自定义中间件。我的目标是在将请求对象发回之前对其进行修改。它有效,结果正是我所期望的,但我不确定这是否是正确的方法。我有点害怕,操作 reqeust 对象不是正确的方法。

代码如下:

expressApp.get('/apps/:id', isAuthenticated, appLinks(dbController), async (req, res) => {
  res.send(req.__appLink)
})

app-links.ts

export const appLinks: MiddlewareWrapper = (dbController: DatabaseHandler) => async (req: Request, res: Response, next: NextFunction) => {

  dbResult = modifyMyDatabaseResult(await dbController.getApps());
  req.__appLink = dbResult
  next()

}

如您所见,在我的路由中,我发送了在中间件中设置的req.__appLink。这是做这些事情的正确方法吗?

【问题讨论】:

    标签: javascript express middleware


    【解决方案1】:

    这很好!修改 req 对象没有任何问题。

    【讨论】:

    • 这不能回答 OP 的问题
    【解决方案2】:

    是的,这很好。但为了更好地展示,您可以将req._appLink 的结果保存在一个变量中并将其传递给res 对象。

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 2018-07-15
      • 2015-09-22
      • 2020-02-05
      • 2015-01-22
      • 2016-03-06
      • 2016-06-29
      • 1970-01-01
      • 2018-01-03
      相关资源
      最近更新 更多