首页 > 解决方案 > 为子文件夹设置 NodeJS Express 路由器

问题描述

我有一个完美运行的 NodeJS 应用程序,使用 Express 路由器。

在我的index.js文件中,我像这样安装路由:

const mountRoutes = require('./routes')
const app = express()
mountRoutes(app)

routes/index.js我有这个:

const feature = require('./feature')
module.exports = app => {
  app.use('/feature', feature)
}

feature.js我有这个:

const Router = require('express-promise-router')
const router = new Router()
module.exports = router

router.get('/getXXX', async (req, res) => {
  // do something
})

一切都很好,但我开始有很多功能,所以我想更多地组织它们。我想要的是拥有“子路由器”,像这样处理我的功能:

+ features
!
!-- category1
!
!----feature11
!----feature12
!
!-- category2
!
!----feature21
!----feature22
!----feature23

我尝试执行与以前相同的代码,但使用“子路由器”。在“主”路由器中routes/index.js,我写了这个:

const category1 = require('./category1')

在子路由器中./category1/index.js我写道:

const feature11 = require('./feature11');

module.exports = app => {
  app.use('/feature11', feature11)
}

./category1/feature11/index.js 我写了与上面相同的代码feature.js。但它不起作用,我有这个错误:

TypeError: app.use is not a function
    at module.exports (XXX/server/routes/category1/index.js:4:7)

有人可以帮帮我吗?

标签: node.jsexpress

解决方案


推荐阅读