出于某些原因,我需要能够动态控制 routes express 使用(即,我需要能够根据设置为活动状态和不活动状态动态启用和禁用 URL/路径)。这就是为什么 express 只添加了 1 个路径:
this._express.all('*', (req, res, next) => {
console.log(req.path);
console.log(req.method)
if (req.path in this._routes){
this._routes[req.path](req, res, next);
} else {
res.sendStatus(404);
}
});
但是,我有一个向服务器发送文件的上传表单,使用 multer 的正常方法如下:
let upload = multer({ dest: 'uploads/' })
express.post('/upload', upload.single('file'), (req, res, next) => {
// Do stuff and have access to req.file
});
但是,使用我当前的方法,我无法将 multer 中间件添加到动态路由中,并且我尝试在调用时在我的自定义路由代码中调用中间件/upload,但是,这无济于事。有没有办法避免必须硬传递我的路线来表达并仍然使用中间件,例如 multer(以及可能通过路线添加的其他人)而不是express.use()?
正如我之前所说,所有这些路由都可以通过管理面板启用/禁用/修改,我宁愿不必添加实际的路由来表达并让我自己的中间件处理请求的路由。
慕后森
相关分类