栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以为NodeJS应用设置基本URL?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以为NodeJS应用设置基本URL?

目前尚不支持此功能,要自己添加它并不容易。

整个路由选择的东西都​​埋在服务器代码的深处,此外,他们自己的路由也没有暴露。

我仔细研究了源代码,还检查了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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484586.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号