目前尚不支持此功能,要自己添加它并不容易。
整个路由选择的东西都埋在服务器代码的深处,此外,他们自己的路由也没有暴露。
我仔细研究了源代码,还检查了Express和Connect中间件的最新版本,但是仍然不支持此类功能,您应该在Connect或Express本身上打开一个问题。
与此同时…
自己修补事物,这是一种快速简便的方法,只需更改一行代码即可。
在中
~/.local/lib/node/.npm/express/1.0.0/package/lib/express/servers.js,搜索:
// Generate the routethis.routes[method](path, fn);
这应该在line周围
357,替换为:
// Generate the routethis.routes[method](((self.settings.base || '') + path), fn);
现在只需添加设置:
app.set('base', '/myapp');这对于纯字符串路径可以很好地工作,为了获得RegEx支持,您将不得不自己在路由器中间件中乱砍,在这种情况下最好提出问题。
就静态提供程序而言,只需在
/mypapp设置它时添加即可。
更新资料
也使其与RegExp一起工作:
// replacethis.routes[method](baseRoute(self.settings.base || '', path), fn);// helperfunction baseRoute(base, path) { if (path instanceof RegExp) { var exp = RegExp(path).toString().slice(1, -1); return new RegExp(exp[0] === '^' ? '^' + base + exp.substring(1) : base + exp); } else { return (base || '') + path; }}我仅使用少数几个表达式对此进行了测试,因此并未进行100%的测试,但从理论上讲应该可以。
更新2
对该修补程序提出了问题:https :
//github.com/visionmedia/express/issues/issue/478



