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的路由 –