path模块包含一系列处理和转换文件路径的工具集,可以通过require('path')访问。知识点:对于window系统,目录分隔符为'',对于UNIX系统,分隔符为'/',对于'..'返回上一级,当发现多个斜杠或反斜杠时,将其替换通过一个,/,//,\都转化为\方法一,path.resolve([path1],[path2],...)依次拼接,得到绝对路径,路径在末尾不会有路径分隔符,如果合并后的路径不构成绝对路径,则默认使用当前工作目录的绝对路径。//拼接路径中没有绝对路径var_path=path.resolve('path3','path4','a/b\\cc\\');//末尾没有路径分隔符\//结果为:D:\others\node\examples\path3\path4\a\b\cc//拼接路径有绝对路径var_path=path.resolve('D://work/ready/demo','path3','path4','a/b\\cc\\');//结果是:D:\work\ready\demo\path3\path4\a\b\cc注意:其中D:othersnodeexamples是我的工作路径,请换成你自己的路径看看2、path.join([path1],[path2],...)按顺序将路径逐一拼接,转换为归一化路径后的结果路径,路径分隔符在路径的尽头。var_path=path.join('path1','path2\\p/cc//','/c/../ttt\\');//结果为:path1\path2\p\cc\ttt\3.path.relative()获取相对路径,获取两条路径的相对关系。从当前路径开始,方法的返回值是根据fromtototo指定的相对路径,路径末尾没有路径分隔符totowhichpathvarfrom='D:\\work\\server\\',to='D:/work/ready/demo';var_path=path.relative(from,to);//表示从from到to的相对路径//结果为:..\ready\demo4,path.isAbsolute()获取绝对路径,是绝对路径(如'E:/abc'或'E:\'),或以“/”或“\”开头的路径,都将返回true。console.log(path.isAbsolute('D:\\work\\server\\'));//trueconsole.log(path.isAbsolute('\\work\\server'))//trueconsole.log(path.isAbsolute('/temp/../..'));//trueconsole.log(path.isAbsolute('E:/github/nodeAPI/abc/efg'));//trueconsole.log(path.isAbsolute('///temp123'));//trueconsole.log(path.isAbsolute('//temp123'));//true5,path.normalize(path)路径分析,得到规范化格式。var_path=path.normalize(__dirname+'//test/a//b/..//c\\');//结果为:D:\others\node\examples\test\a\c\6、path.format(pathObject)该方法用于将字符串类型的路径转换为路径对象(pathObject)。路径对象包括文件目录、文件名、扩展名等。var_path=path.format(path.format({root:'E:\\',dir:'D:\\others\\node\\examples/test',base:'utilyou.mp4',ext:'.mp4',name:'以你为我'}));//结果为:D:\others\node\examples/test\utilyou.mp47,path.parse()该方法用于解析一个路径对象,将其转换为字符串类型的路径(pathString)。var_path=path.parse(__dirname+'/test/utilyou.mp3');//结果是://{root:'D:\\',//dir:'D:\\others\\node\\examples/test',//base:'utilyou.mp3',//ext:'.mp3',//name:'utilyou'//}8、path.dirname()获取路径中的目录结构,不会转换为归一化后的结果路径。var_path=path.dirname(__dirname+'/test/hha/utilyou.mp3');//注意///结果是:D:\others\node\examples/test/hhavar_path=path.dirname(__dirname+'/test/hha/');//注意///结果为:D:\others\node\examples/test9,path.basename()获取路径中的文件名(.ext包含后缀名)。var_path=path.basename(__dirname+'/test/utilyou.mp3','.mp3');var_path=path.basename(__dirname+'/test/utilyou','.mp3');var_path=path.basename(__dirname+'/test/utilyou','.ext');//结果为:utilyouvar_path=path.basename(__dirname+'/test/utilyou.mp3');var_path=path.basename(__dirname+'/test/utilyou.mp3','');var_path=path.basename(__dirname+'/test/utilyou.mp3','.ext');//结果是:utilyou.mp3var_path=path.basename(__dirname+'/test/','.mp3');//结果是:test10,path.extname()获取路径中的文件扩展名。var_path=path.extname(__dirname+'/test/utilyou.mp3');//结果是:.mp3var_path=path.extname(__dirname+'/test/utilyou');//结果是:空属性1,path.win32和path.posix都是属性。path:会根据当前的操作系统来决定是使用windows方式操作路径还是使用linux方式操作路径。path.win32:允许您使用windows操作任何操作系统上的路径。path.posix:允许您使用linux在任何操作系统上操作路径。因此,在windows系统中,path==path.win32,在linux系统中,path==path.posix。console.log(path==path.win32);//trueconsole.log(path==path.posix);//false2,path.delimiter返回操作系统中的目录分隔符,如window为';',Unix为':'。console.log(path.delimiter);//结果是:;3。path.sep返回操作系统中的文件分隔符;window是'\',Unix是'/'。控制台日志(路径.sep);//结果是:\console.log('foo\\bar\\baz'.split(path.sep));//['foo','bar','baz']console.log('foo/bar/baz'.split(path.sep));//win下返回['foo/bar/baz'],但返回['foo','bar','baz']见官方文档