什么是追加到path的正确方法?

我接受一个path作为我的一个脚本的命令行参数。 有两件事我想做。 首先是我想确认path在目录中传递。 我想要做的第二件事是附加到子目录名称的path(我知道提前的子目录名称)。 如果库中没有任何函数会自动添加尾随/字符到缺less的path中,还是必须手动检查?

例如,如果/User/local被传递,那么我必须将/bin添加到path中,而如果path/User/local/被传递,我必须添加bin

谢谢您的帮助。

看来你只是想要path.join , fs.existsSync和fs.statSync

 var path = require('path'); var fs = require('fs'); var dir = process.argv[2]; console.log(dir); console.log(fs.existsSync(dir) && fs.statSync(dir).isDirectory()); console.log(path.join(dir, 'mysubdir')); 

所以,如果我运行上面这样的: node test.js /tmp我会得到:

 /tmp true /tmp/mysubdir 
 var tail = 'bin/test/', path = arg[arg.length-1] === '/' ? arg + tail : arg + '/' + tail; 

或者我错过了什么? 🙂

你可以把逻辑放到一个简短的函数中,确保两部分之间只有一个“/”:

 function appendToPath(orig, add) { return orig.replace(/\/$/, "") + "/" + add.replace(/^\//, ""); } var newPath = appendToPath("/User/local", "bin"); 

要么

 var newPath = appendToPath("/User/local/", "/bin"); 

要么

 var newPath = appendToPath("/User/local", "/bin"); 

他们都返回"/User/local/bin"