Express docs很清楚,您可以为app.use
提供特定中间件的一系列路由。
它们还描述了如何将路由器分成单独的文件here。
但是我看不到如何结合这两种方法。
const authRoutes = require('./routes/auth');
app.use(['/api/register', '/api/login'], authRoutes);
router.route('/')
.all((req, res) => res.send('responds to both routes'); // <- this works
router.route('/register') // <- But how can I specify a specific route?
.all((req, res) => {
res.send('The register route');
});
答案 0 :(得分:0)
您似乎正在尝试做这样的事情
const authRoutes = require('./routes/auth');
app.use('/api', authRoutes);
router.route(['/register', '/login']) . // respond to both
.all((req, res) => res.send('responds to both routes');
router.route('/register') // this is /api/register
.all((req, res) => {
res.send('The register route');
});
router.route('/login') // this is /api/login
.all((req, res) => {
res.send('The login route');
});
但是此逻辑有问题,因为通过/register
或/login
时,将永远不会调用auth文件中的单个路由/api/login
和/api/register
,它们会通过第一条阵列路线。如果将第一个路由放到底部,则永远不会调用对这两个路由进行响应的数组路由,因为它会转到第一个/ register路由或第二个/ login路由。