nodejs中dirname和filename以及process.cwd的异同


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/04/22/nodejs%E4%B8%ADdirname%E5%92%8Cfilename%E4%BB%A5%E5%8F%8Aprocess-cwd%E7%9A%84%E5%BC%82%E5%90%8C/

摘要

本文主要讲述了:

  1. 含义
  2. 相同点
  3. 不同点
  4. 示例

正文

含义

  • __dirname表示 nodejs 模块目录的绝对路径
  • __filename表示 nodejs 模块文件的绝对路径
  • process.cwd()表示 CWD

相同点

三者的值都是绝对路径。

不同点

无论 CWD 是什么,只要 nodejs 模块存储位置不变,nodejs 模块的__dirname__filename的值永远不会改变。

process.cwd()的值会随着 CWD 的改变而改变。

示例

learn_nodejs/index.js

1
2
3
console.log(__dirname);
console.log(__filename);
console.log(process.cwd());

运行:

1
2
3
4
#!/usr/bin/env bash

cd learn_nodejs
node index.js

输出:

1
2
3
~/learn_nodejs
~/learn_nodejs/index.js
~/learn_nodejs

运行:

1
2
3
4
#!/usr/bin/env bash

cd ~
node learn_nodejs/index.js

程序会输出:

1
2
3
~/learn_nodejs
~/learn_nodejs/index.js
~

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/04/22/nodejs%E4%B8%ADdirname%E5%92%8Cfilename%E4%BB%A5%E5%8F%8Aprocess-cwd%E7%9A%84%E5%BC%82%E5%90%8C/


本文对你有帮助?请支持我


支付宝
微信