node路径操作

node.js 使用函数封装器将每个模块进行封装,并将如下参数传递给模块,使的模块可以在内部直接使用这些参数。

1
2
3
(function(exports, require, module, __filename, __dirname) {
// 模块的代码实际上在这里
});

当前模块所在路径

__dirname 可以获取到当前模块所在目录。

1
2
3
4
5
//从 /Users/mjr 运行 node example.js
console.log(__dirname);
// 打印: /Users/mjr
console.log(path.dirname(__filename));
// 打印: /Users/mjr

当前模块文件名

__filename 可以获取到当前模块的绝对文件名。

1
2
3
4
5
//从 /Users/mjr 运行 node example.js
console.log(__filename);
// 打印: /Users/mjr/example.js
console.log(__dirname);
// 打印: /Users/mjr

拼接路径

path.join([...paths]) 方法可以使用平台特定的分隔符,将所给定的参数片段连接在一起。

1
2
3
4
5
6
7
consot path = require('path');

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'

path.join('foo', {}, 'bar');
// 抛出 'TypeError: Path must be a string. Received {}'