使用这个非常简单的应用程序:
const express = require('express');
const app = express();
const router = express.Router();
const port = 8080;
router.get('/test', (req, res) => {
res.send('Test was hit')
})
// binds router to express app
app.use('/root', router);
app.listen(port, () => logger.info(`Listening on port: ${port}`));
运行后curl http://localhost:8080/root/test
,毫不奇怪,响应是 Test was hit
我想让这个更加通用,并希望消费者能够点击 curl http://localhost:8080/<whatever-the-consumer-specifies>/test
仍然访问路由器/test
端点。
但是,如果我将绑定(bind)替换为如下:
app.use('/*',router);
后续点击后,响应为 Cannot GET /root/test
我怎样才能实现这个目标?
*编辑:*
我当然可以:
router.get('*/test', (req, res) => {
res.send('Test was hit')
})
但是 - 这不是我寻求的答案,我只想在项目中进行一次此配置。
最佳答案
关于node.js - 如何根据正则表达式指定的路径将路由器附加到 Express 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57091151/