📅  最后修改于: 2023-12-03 15:17:56.607000             🧑  作者: Mango
在Node.js中,__filename是一个全局变量,它代表当前执行脚本所在的文件的绝对路径。
有时候我们需要获取当前脚本的绝对路径来确定某些资源文件的路径,这时就可以使用__filename。
console.log(__filename); // 输出:/Users/username/example.js
__filename返回整个绝对路径信息,包括路径和文件名。如果我们需要单独获取文件名或路径,则可以使用path模块的相关方法进行解析。
const path = require('path');
console.log(path.basename(__filename)); // 输出:example.js
console.log(path.dirname(__filename)); // 输出:/Users/username
console.log(path.extname(__filename)); // 输出:.js
使用__filename可以判断当前执行的模块是否为主模块(当前文件是否为入口文件)。
if (__filename === require.main.filename) {
console.log('This is the main module.');
} else {
console.log('This is a module.');
}
__filename返回的是当前脚本文件的绝对路径,因此在require模块时需要注意路径的相对路径或绝对路径。另外,由于__filename是全局变量,应避免在程序中随意更改该变量,避免造成不必要的问题。
总的来说,__filename变量在Node.js中具有重要的作用,可以帮助我们获取脚本的路径信息,以及判断脚本是被当做模块执行还是作为主文件执行。