node.js - 为子文件夹设置 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)
有人可以帮帮我吗?
解决方案
推荐阅读
- r - 将 Sys.time() 转换为字符而不丢失时区?
- java - Python客户端不接收来自Spring websocket服务器的消息
- python - 如何强制 python 可重现?
- c++ - 使用正则表达式在 C++ 中排除子文件夹
- javascript - 传单 JS Cluster Maker 捕获 ids 孩子
- python - Color network graph node lines on click in Bokeh, Python
- r - 用函数创建矩阵
- c++ - 为什么我会收到“警告:控制到达非无效函数的结尾”和 switch-case?
- vue.js - 在单个文件组件中使用路由器链接
- gremlin - 使用父顶点属性过滤掉正在运行的顶点