如何将所有以字符串 api 开头的调用路由到快速中间件中的处理程序



我有一个快速应用程序.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();  
})

相关内容

  • 没有找到相关文章

最新更新