node.js中的path.join方法使用说明
方法说明:
将多个参数组合成一个path(详细请看例子)
语法:
path.join([path1],[path2],[...])
由于该方法属于path模块,使用前需要引入path模块(varpath=require(“path”))
例子:
path.join('/foo','bar','baz/asdf','quux','..')
//returns
'/foo/bar/baz/asdf'
path.join('foo',{},'bar')
//throwsexception
TypeError:Argumentstopath.joinmustbestrings
源码:
//windowsversion
exports.join=function(){
functionf(p){
if(!util.isString(p)){
thrownewTypeError('Argumentstopath.joinmustbestrings');
}
returnp;
}
varpaths=Array.prototype.filter.call(arguments,f);
varjoined=paths.join('\\');
//Makesurethatthejoinedpathdoesn'tstartwithtwoslashes,because
//normalize()willmistakeitforanUNCpaththen.
//
//Thisstepisskippedwhenitisveryclearthattheuseractually
//intendedtopointatanUNCpath.Thisisassumedwhenthefirst
//non-emptystringargumentsstartswithexactlytwoslashesfollowedby
//atleastonemorenon-slashcharacter.
//
//Notethatfornormalize()totreatapathasanUNCpathitneedsto
//haveatleast2components,sowedon'tfilterforthathere.
//ThismeansthattheusercanusejointoconstructUNCpathsfrom
//aservernameandasharename;forexample:
//path.join('//server','share')->'\\\\server\\share\')
if(!/^[\\\/]{2}[^\\\/]/.test(paths[0])){
joined=joined.replace(/^[\\\/]{2,}/,'\\');
}
returnexports.normalize(joined);
};