定义带有前缀的koa-router嵌套路由

时间:2018-01-19 21:28:19

标签: node.js koa koa-router

我尝试使用koa-router定义不同的路线,并且我有一个hellova时间让它工作。

这样的事情:



const apiRouter = new KoaRouter({
  prefix: '/api'
})
.use(bodyParser)
.post('/sign-in', signinMiddleware)
.get('auth-check', authCheckMiddleware)

const protectedApisRouter = new KoaRouter()
.use(authorizeMiddleware)
.get('/widgets', getWidgetsListMiddleware)
.post('/widgets', createWidgetMiddleware)
.get('/widgets/:widgetId', getWidgetByIdMiddleware)
.patch('/widgets/:widgetId', updateWidgetMiddleware)


apiRouter.use(
  prodectedApisRouter.routes(),
  prodectedApisRouter.allowedMethods()
)

koaApp.use(apiRouter.routes())
koaApp.use(apiRouter.allowedMethods())
 




根据此处的文档,我希望在/api/widgets/*bodyParser中间件运行之后,authorizeMiddleware的请求应该进入各自的中间件:https://github.com/alexmingoia/koa-router#nested-routers

但相反,我为所有这些路线获得了404。我究竟做错了什么?

1 个答案:

答案 0 :(得分:2)

显然上面的代码工作得很好..但是在authorizeMiddleware我正在做await next而不是await next()

太糟糕了,没有办法在这里删除问题..人们现在要来这里寻找与我白痴无关的问题。