我如何稳健地检测node.js中的相对路径

问题描述 投票:5回答:3

也许我正在加倍努力(我应该只寻找./../的前缀),但是我不想重新发明轮子并编写一个函数来正确检测相对路径(对于所有平台等)

现有图书馆?

是否有npm个软件包可以做到这一点?当然,这个问题已经解决了...

方法?

[不存在现有库,我打算采取的方法是使用path模块函数将join到已知前缀的可能相对路径,然后查看结果是什么,并假设path.join('some_base', possiblyRelative)允许以平台安全的方式区分特征。

还有其他建议吗?办法?

javascript node.js
3个回答
8
投票

有点晚了,但对于其他搜索相同问题的人:

自节点版本0.12.0起,您具有path.isAbsolute(path)模块中的path.isAbsolute(path)功能。要检测您的路径是否是相对路径,请使用路径的取反:

即:

path

10
投票

UPDATE2:TomDotTom在这里找到了更可靠的答案:var path = require('path'); if( ! path.isAbsolute(myPath)) { //... }

此处转载(但相反):

How to check if a path is absolute or relative

对于节点v0.12及更高版本,我建议使用var path = require('path'); function isRelative(p) { return path.normalize(p + '/') !== path.normalize(path.resolve(p) + '/'); }


0
投票
path.isAbsolute

在此示例中,我们仅允许相对字符串作为字符串路径的开头

© www.soinside.com 2019 - 2024. All rights reserved.