2013-03-08 118 views
3

此处更改路径分隔符是我的代码:使用路径模块

var thisImageName = thisRow["imagename"]; 
var thisImagePath = path.relative("./public", __dirname + "/public/uploads/" + thisImageName + ".jpg"); 
console.log(thisImagePath); // returns __dirname\public\uploads\ 
img.src = thisImagePath.split(path.sep).join("/"); 

,获取相应的图片路径,我有路径分隔符进行分割再加入用适当的斜线排列。有没有人知道这样做的更有效的方式?

回答

11

约翰的回答只会取代的“\”

img.src = thisImagePath.replace(new RegExp('\\' + path.sep, 'g'), '/'); 

将取代所有的人的第一个实例。

您可以将'g'标志传递给.replace,但是这个non-standard

7

而且,你总是可以得到正斜杠的路径,通过专门使用POSIX API的路径:

var p = path.posix.relative("./public", imagePath); 

编辑:这个API是只在节点0.12或更高版本。

+0

我upvoted这个(回到0)。我猜如果有人在节点0.10或更早的版本上尝试过它,它可能会降低它的性能,在那里它不被支持... – laurelnaiad 2016-01-05 17:18:05

+0

谢谢,我编辑它以包含这个警告......但我们现在都使用节点最新的稳定版本对? ;) – 2016-01-05 21:29:50

+1

这是最好的答案。 +1 – 2017-06-01 18:00:00