0
我想创建一个插件文件夹,将有各种插件。因此,例如,如果有一个名为“admin”的插件,就不会有这样就会产生adminOnly文件,看起来像这样的/插件/ admin文件夹:动态添加路线
router.get('/', (req, res, next) => {...})
router.get('/link1', (req, res, next) => {...})
router.post('/link2', (req, res, next) => {...})
router.get('/link3', (req, res, next) => {...})
.
.
.
以前,在我的app.js文件我有类似:
const adminOnly = require('.../plugins/admin/adminOnly'
...
app.use('/adminOnly', adminOnly)
这导致如果我去www.website.com/adminOnly/link1我获得无论是在router.get的链接1.
不过,我想使其成为动态的,以便我可以更改我的app.js逻辑,使其如此:
app.use((req, res, next) => {
const possiblePlugin = require('.../plugins/${req.baseUrl}')
res.render<or something> (possiblePath)
}
这个想法是尝试去前端请求的路径,看看有什么,但在运行时动态添加路径,以便任何人都可以随时添加插件和他们的工作。
我确定你知道这一点,但要注意清理输入,以便用户无法请求意外的文件(例如'../../../ etc/passwd') –
我的实际想法是只允许用户访问.../plugins/nameOfPlugin/index.js,然后要求所有插件维护被命名为index.js的路由 –