关于Node.js中path模块的resolve()和join()方法的对比,对比总结看例子。之后写模块的时候思路会很清晰。resolve的作用:path.resolve()方法将一些路径/路径段解析为绝对路径。语法:path.resolve([...paths])解释:...paths一系列路径或路径片段如果没有传入路径片段,或者路径片段的长度为零(空字符),然后是路径。resolve()会返回当前工作目录的绝对路径(相当于使用path.resolve(__dirname))例子:我当前的工作路径是/workspace/democonsole.log(path.resolve())//returns/workspace/democonsole.log(path.resolve(''))//返回/workspace/democonsole.log(path.resolve(__dirname))//返回/workspace/democonsole.log(path.resolve('/img/books','/net'))//返回'/net'console.log(path.resolve('img/books','/net'))//返回'/net'console.log(path.resolve('img/books','./net'))//返回'/workspace/demo/img/books/net'console.log(path.resolve('/img/books','./net'))//返回'??/img/books/net'console.log(path.resolve('/img/books','net'))//返回'/img/books/net'console.log(path.resolve('/img/books','../net'))//返回'/img/net'控制台。log(path.resolve('src','/img/books','../net'))//返回'/img/net'console.log(path.resolve('src','./img/博oks','../net'))//返回'/workspace/demo/src/img/net'console.log(path.resolve('src','img/books','../net'))//returns'/workspace/demo/src/img/net'总结:参数从后往前,如果字符以/开头,则不会拼接到前面的路径;如果以../开头,则之前的路径为拼接路径,但不包括上一节的最后一个路径;如果以./开头或者没有符号,则拼接之前的路径;join函数:path.join()方法使用特定于平台的分隔符来连接所有给定的路径片段语法:path.join([...paths])描述:...paths路径或路径片段序列.长度为零的路径片段将被忽略。如果加入的路径字符串是零长度字符串,返回'.',表示当前工作目录示例:path.join('/img','book','net/abc','inter','..');//返回/img/book/net/abcconsole.log(path.join('/img/books','../net'))//返回/img/netconsole.log(path.join('img/books','../net'))//返回img/netconsole.log(path.join('/img/books','./net'))//返回/img/books/netconsole.log(path.join('img/books','./net'))//返回img/books/netconsole.log(path.join('/img/books','net'))//返回/img/books/netconsole.log(path.join('img/books','net'))//返回/img/books/netconsole.log(path.join('/img/books','/net'))//returns/img/books/netconsole.log(path.join('img/books','/net'))//returnsimg/books/net总结一下区别:join()只是拼接每个路径段,与resolve()不同的是,它除了拼接各个字段外,还会拼接工作目录的路径。其次,如果以/开头的字符串段没有像resolve那样在join中返回自身,则存在..同../表示同一个意思,都代表上级目录