Routes 如何用参数和正则表达式创建膝关节炎性路径 如何实现以下膝关节炎治疗路径: app.get("/Chicago_Metro/Cicero_City", myFunctionHandler1) app.get("/Cook_County/Cicero_City", myFunctionHandler2)

Routes 如何用参数和正则表达式创建膝关节炎性路径 如何实现以下膝关节炎治疗路径: app.get("/Chicago_Metro/Cicero_City", myFunctionHandler1) app.get("/Cook_County/Cicero_City", myFunctionHandler2),routes,koa,Routes,Koa,最后,在下面的处理程序中,将“Chicago”作为参数传递给“metro”或“Cook”作为参数传递给county,将“Cicero”作为参数传递给“city”: function *myFunctionHandler1(metro, city) { ... } function *myFunctionHandler2(county, city) { ... } 我在考虑使用正则表达式,但我从来没有想到它会与:param混合在一起 注意:我需要保留该路径语法,因为它已经按照上面的方式进行了搜

最后,在下面的处理程序中,将“Chicago”作为参数传递给“metro”或“Cook”作为参数传递给county,将“Cicero”作为参数传递给“city”:

function *myFunctionHandler1(metro, city) {
...
}

function *myFunctionHandler2(county, city) {
...
}
我在考虑使用正则表达式,但我从来没有想到它会与:param混合在一起

注意:我需要保留该路径语法,因为它已经按照上面的方式进行了搜索和索引

最坏的情况可能是,我将以全名作为参数结束,并在单个handlerFn中处理它,然后测试_metro或_country或_city

正则表达式捕获组的结尾

var koa   = require('koa'),
    route = require('koa-router'),
    app   = koa();

app.use(route(app));

app.get(/^\/(.*)(?:_Metro)\/(.*)(?:_City)$/, function *(){
    var metro = this.params[0];
    var city = this.params[1];
    this.body = metro + ' ' + city;
});

app.get(/^\/(.*)(?:_County)\/(.*)(?:_City)$/, function *(){
    var county = this.params[0];
    var city = this.params[1];
    this.body = county + ' ' + city;
});

app.listen(3000);