大佬教程收集整理的这篇文章主要介绍了node.js – 是否可以为NodeJS应用程序设置基本URL?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何设置Express应用程序,以使基本URL为something.com/myapp?
所以,而不是:
app.get("/myapp",function (req,res) { // can be accessed from something.com/myapp });
我可以:
// Some set-up app.base = "/myapp" app.get("/",res) { // can still be accessed from something.com/myapp });
我也想配置Connect的staticProvider行为相同的方式(现在,它默认为提供静态文件到something.com/js或something.com/css而不是something.com/myapp/js)
整个路由东西被埋在服务器代码深处,作为奖励,没有暴露他们自己的路由。
我挖通过源,并检查了最新版本的Express和Connect中间件,但仍然没有这种功能的支持,你应该在Connect或Express本身打开一个问题。
与此同时…
自己修补这个东西,这里是一个快速和简单的方法,只有一行代码改变。
在〜/ .local / lib / node / .npm / express / 1.0.0 / package / lib / express / servers.js中,搜索:
// Generate the route this.routes[method](path,fn);
这应该在357行左右,替换为:
// Generate the route this.routes[method](((self.setTings.base || '') + path),fn);
现在只要添加设置:
app.set('base','/myapp');
这工作正常的路径是纯字符串,对于RegEx支持,你必须自己在路由器中间件,在这种情况下更好地提出问题。
更新
使它与RegExp一起工作:
// replace this.routes[method](baseRoute(self.setTings.base || '',path),fn); // Helper function 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
以上是大佬教程为你收集整理的node.js – 是否可以为NodeJS应用程序设置基本URL?全部内容,希望文章能够帮你解决node.js – 是否可以为NodeJS应用程序设置基本URL?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。