__dirname:获取当前文件的所属文件夹绝对路径。
__filename:获取当前文件的绝对路径。
function init() {
console.log("init")
console.log(__dirname)
console.log(__filename)
}
init()
结果
C:\Program Files\nodejs\node.exe ..\..\test.js
init
D:\work\svn
D:\work\svn\test.js
function init() {
console.log("init")
console.log(__dirname)
console.log(typeof __dirname)
console.log(__filename)
console.log(typeof __filename)
}
init()
结果
C:\Program Files\nodejs\node.exe ..\..\test.js
init
D:\work\svn
string
D:\work\svn\test.js
string
显示__dirname和__filename为字符串类型,因此可以使用所有字符串相关函数进行处理。
function getFileName() {
var fileName = __filename.replace(__dirname, "");
fileName = fileName.replace("\\", "");
return fileName;
}
console.log(getFileName());
结果
C:\Program Files\nodejs\node.exe ..\..\test.js
test.js
由此可见,可以将__dirname、__filename直接视为string对象操作。注意,在js中,单个的反斜杠意味着转义,因此在此函数中需使用两个反斜杠表示将后一个反斜杠转义为字符。
此举可用于模板化文件的批量注册中,或是依据路径进行文件查找操作。