要取得Node.js当前执行路径,可以使用内置的__dirname
变量。__dirname
是一个指向当前执行脚本所在目录的绝对路径的字符串。下面是一些细节和示例说明。
获取当前执行路径的方法
使用__dirname
__dirname
是一个全局变量,它指的是当前执行文件所在目录的绝对路径。使用方法如下:
console.log(__dirname); // 输出当前执行路径
以上代码将输出当前文件所在的绝对路径。例如,在/home/user/documents/myproject
文件夹下执行代码,输出结果将会是/home/user/documents/myproject
。
使用process.cwd()
process.cwd()
方法返回一个执行Node.js进程的当前工作目录的路径。该方法不仅在Node.js应用程序中可用,也在Web浏览器中可以使用。使用方法如下:
console.log(process.cwd()); // 输出当前执行路径
与__dirname
不同,process.cwd()
方法返回的是由Node.js进程启动时的工作目录决定的相对路径,而不是当前执行脚本所在目录的绝对路径。因此,有时候__dirname
和process.cwd()
输出的结果是不同的。
示例说明
假如文件结构如下:
├── index.js
├── config.js
└── public
├── css
│ ├── style.css
│ └── print.css
├── js
│ └── main.js
└── index.html
index.js
文件位于项目根目录下,可以用__dirname
或process.cwd()
获取它的路径。config.js
文件位于项目根目录下,可以用__dirname
或process.cwd()
获取它的路径。public
文件夹包含项目的公共静态文件,位于项目根目录下。css
文件夹包含项目的CSS样式表文件。style.css
文件位于/public/css
目录下,使用__dirname
或process.cwd()
获取它的路径不同,因为style.css
文件是在运行时由index.html
所在的目录来加载的。print.css
文件位于/public/css
目录下,使用__dirname
或process.cwd()
获取它的路径不同,因为print.css
文件是在运行时由style.css
所在的目录来加载的。
js
文件夹包含项目的JavaScript代码文件。main.js
文件位于/public/js
目录下,使用__dirname
或process.cwd()
获取它的路径不同,因为main.js
文件是在运行时由index.html
所在的目录来加载的。
index.html
文件位于/public
目录下,使用__dirname
或process.cwd()
获取它的路径是一样的。
例如,在index.js
文件中,使用__dirname
获取config.js
文件的路径:
const path = require('path');
const configPath = path.join(__dirname, 'config.js');
console.log(configPath);
// 输出:/home/user/documents/myproject/config.js (假设当前工作目录为/home/user/documents/myproject)
使用process.cwd()
获取config.js
文件的路径:
const path = require('path');
const configPath = path.join(process.cwd(), 'config.js');
console.log(configPath);
// 输出:/home/user/documents/myproject/config.js (假设当前工作目录为/home/user/documents/myproject)
在style.css
文件中,使用__dirname
获取print.css
文件的路径:
@import url(/* path to print.css */ "../print.css");
/* ... */
const path = require('path');
const printCSSPath = path.join(__dirname, '../print.css');
console.log(printCSSPath);
// 输出:/home/user/documents/myproject/public/css/../print.css
使用process.cwd()
获取print.css
文件的路径:
@import url(/* path to print.css */ "../print.css");
/* ... */
const path = require('path');
const printCSSPath = path.join(process.cwd(), 'public/css/../print.css');
console.log(printCSSPath);
// 输出:/home/user/documents/myproject/public/../print.css
以上示例中用到了path.join()
方法,它的作用是将多个路径拼接起来,并处理好从一个目录跳转到另一个目录时需要用到的..
操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs取得当前执行路径的方法 - Python技术站