---
# System prepended metadata

title: node.js -path

---

六角體驗營
# node.js : 模組 - path 
>  **[Node.js PATH API文件](https://nodejs.org/api/path.html)**
## __dirname、__filename
* **__dirname** 根目錄檔案路徑
* **__filename** 檔案名稱

  可用除錯模式觀察(下圖)
  
  ![](https://hackmd.io/_uploads/Byp06KBZp.png)
## path : node.js內建模組路徑
### **require('path')** 請求內建模組路徑
* 1. **path.dirname('路徑')** 取得目錄路徑
```=
var path = require('path');
console.log(path.dirname('/xx/yy/zz.js')) 

//回傳結果為/xx/yy  因為zz.js是檔案名稱(filename)
```
* 2. **path.join(__dirname,'路徑')** 合併路徑
```=
var path = require('path');
console.log(path.dirname('/xx/yy/zz.js'));
//回傳定義路徑 /xx/yy

console.log(path.join(__dirname,'/xx'));
//回傳__dirname加上定義路徑C:\Users\user\Desktop\project\test\node.js-path\xx
```

* 3. **path.basename('路徑') / path.extname('路徑')** 抓檔名/副檔名
```=
var path = require('path');
console.log(path.basename('/xx/yy/zz.js'));
//zz.js

---------------------------
console.log(path.extname('/xx/yy/zz.js'));
//.js
```

* 4. **path.parse('路徑')** 分析路徑
```=
var path = require('path');
console.log(path.parse('/xx/yy/zz.js'));
//{ root:'/',dir:'/xx/yy',base:'zz.js',ext:'.js',name:'zz'}
```


