我正在使用Nodejs和“Express js”,现在我正在使用“路由器中间件”功能以下代码,每当我点击“http://localhost:3000”然后“路由器中间件”工作/执行,但我想每当我点击“http://localhost:3000/api/”(api路由)只有“路由器中间件”应该活动/执行.这里是我目前的代码
const express = require('express');
const app = express();
// Create a router instance
const router = express.Router();
// Define a middleware function specific to the router
const routerMiddleware = (req, res, next) => {
// Perform some operations on the request or response
console.log('Router middleware executed');
next();
};
// Apply the middleware to the router
router.use(routerMiddleware);
// Define a route on the router
router.get('/example', (req, res) => {
res.send('Hello from the router');
});
// Mount the router on the app
app.use('/api', router);
// Start the server
app.listen(3000, () => {
console.log('Server started on port 3000');
});
2条答案
按热度按时间lyfkaqu11#
您可以直接将中间件添加到路由器,而不是使用
router.use(routerMiddleware)
,如下所示:app.use('/api',routerMiddleware,router);
gorkyyrv2#
应用中间件的顺序很重要,如果您没有将中间件应用于某些路由,请在应用中间件之前定义该路由。
在下面的示例中,/API/example路由不会命中中间件,因为它是在应用中间件之前。但是/API会命中。