node.js中的path.join方法使用说明

  方法说明:

  将多个参数组合成一个 path (详细请看例子)

  语法:

  

复制代码 代码如下:

  path.join([path1], [path2], [...])

  由于该方法属于path模块,使用前需要引入path模块(var path= require(“path”) )

  例子:

  

复制代码 代码如下:

  path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')

  // returns

  '/foo/bar/baz/asdf'

  path.join('foo', {}, 'bar')

  // throws exception

  TypeError: Arguments to path.join must be strings

  源码:

  

复制代码 代码如下:

  // windows version

  exports.join = function() {

  function f(p) {

  if (!util.isString(p)) {

  throw new TypeError('Arguments to path.join must be strings');

  }

  return p;

  }

  var paths = Array.prototype.filter.call(arguments, f);

  var joined = paths.join('\\');

  // Make sure that the joined path doesn't start with two slashes, because

  // normalize() will mistake it for an UNC path then.

  //

  // This step is skipped when it is very clear that the user actually

  // intended to point at an UNC path. This is assumed when the first

  // non-empty string arguments starts with exactly two slashes followed by

  // at least one more non-slash character.

  //

  // Note that for normalize() to treat a path as an UNC path it needs to

  // have at least 2 components, so we don't filter for that here.

  // This means that the user can use join to construct UNC paths from

  // a server name and a share name; for example:

  // path.join('//server', 'share') -> '\\\\server\\share\')

  if (!/^[\\\/]{2}[^\\\/]/.test(paths[0])) {

  joined = joined.replace(/^[\\\/]{2,}/, '\\');

  }

  return exports.normalize(joined);

  };