我有一个快速应用程序.js具有典型的
app.get('/path1', (req, res => {})
app.get('/path2', (req, res => {})
app.get('/path3', (req, res => {})
现在我想捕获所有路由,从如下所示的 api 开始,并将它们重定向到 Express 中的相应处理程序,但不确定如何实现
/api/path1
/api/path2
/api/path3
我'假设我可以有一个捕获所有 api,如下所示
app.all('/api/*', function (request, response, next) { //in a server.js file
//how can i call the corresponding paths here??
// looking for something to do forward to current-route.replace('api','')
// or something like that
})
也许路由器级中间件可以解决您的问题:
const router = express.Router();
router.get('/path1', (req, res => {});
router.get('/path2', (req, res => {});
router.get('/path3', (req, res => {});
app.use('/api', router);
更新:
使用重定向(与您当前的解决方案没有太大区别;未经测试(:
app.all('/api/*', (request, response) => res.redirect(request.url.replace('/api', '')));
这对我有用,如果有更好的方法,请告诉我
app.all('/api/*', function (request, response, next) {
request.url = request.url.replace('/api','');
next();
})