gpt4 book ai didi

node.js - 如何根据正则表达式指定的路径将路由器附加到 Express 应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:04 24 4
gpt4 key购买 nike

使用这个非常简单的应用程序:

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')
})

但是 - 这不是我寻求的答案,我只想在项目中进行一次此配置。

最佳答案

Express 允许在路由器中间件中使用正则表达式,如文档 here 中所述。 .

app.use(/\/\w+/, router);

您可以替换字符串并在第一个参数中放置正则表达式。

关于node.js - 如何根据正则表达式指定的路径将路由器附加到 Express 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57091151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com