gpt4 book ai didi

javascript - 快速路由器

转载 作者:行者123 更新时间:2023-11-29 21:32:58 24 4
gpt4 key购买 nike

我正在 NodeJS 上开发内容预处理器我有 3 种具体的预处理方式:

  • 构建html
  • 构建xhtml
  • 构建xml

每种方式都非常不同(不同的中间件)所以我初始化了 3 个路由器:

  var xmlRouter = express.Router();
var xhtmlRouter = express.Router();
var htmlRouter = express.Router();

我所需要的只是将每个请求分派(dispatch)到具体的路由器。我不能使用 app.use() 来挂载每个路由器,因为我的 url 有剥离效果:

// Binding
app.use(/\/\S*\.fast\.xml(?=$)/, xmlRouter);
app.use(/\/\S*\.xhtml(?=$)/, xhtmlRouter);
app.use([/\/\S*\.html(?=$)/, /\/\S*\/(?=$)/], htmlRouter);

我将放弃我需要进一步了解的网址。没办法

那么有什么解决办法吗?

最佳答案

我现在无法对其进行测试,但由于它不适合评论,所以我将其写在答案部分。

恕我直言,它应该是这样工作的:

var xmlRouter = express.Router();
app.use(function(req, res, next) {
if( req.url.match(/\/\S*\.fast\.xml(?=$)/) ) {
//if the url matches, pass the res, res, next to the xmlRouter
xmlRouter.handle(req, res, next);
//if handle does not work try: xmlRouter(req, res, next)
} else {
//otherwise pass it to the next registered route
next();
}
});

//do the same for the other routers

也许这个例子有错误,因为我无法测试它,但我认为思路应该很清楚。

关于javascript - 快速路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35655477/

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