node.js中的檔案路徑主要有以下幾種:
__dirname
__filename
proces.cwd()
./
../
其中前三個是絕對路徑,後兩個是相對路徑 ,可以通過path.resolve
轉換為絕對路徑
我現在的目錄結構是這樣的:
d:/
-projects/
path-test/
path.js
path.js:
const path = require('path')
console.log('__dirname:', __dirname)
console.log('__filename:', __filename)
console.log('process.cwd():', process.cwd())
console.log('./:', path.resolve('./'))
在path-test
資料夾下用node執行path.js
,輸出結果:
__dirname: d:\projects\path-test
__filename: d:\projects\path-test\path.js
process.cwd(): d:\projects\path-test
./: d:\projects\path-test
在projectst
資料夾下用node執行path.js
:
__dirname: d:\projects\path-test
__filename: d:\projects\path-test\path.js
process.cwd(): d:\projects
./: d:\projects
關於他們的區別:
process.cwd()
是程式的執行路徑,./
相同
__dirname
是被執行的js檔案所在資料夾的絕對路徑
__filename
是被執行的js檔案的絕對路徑,與__dirname
一樣,都是js檔案本身的屬性
用於連線路徑,主要用於針對不同系統(windows/unix)使用當前系統的路徑分隔符
var path = require('path');
path.join(mydir, "foo");
上面**在unix系統下,會返回路徑mydir/foo
。
用於將相對路徑轉為絕對路徑
它可以接受多個引數,依次表示所要進入的路徑,直到將最後乙個引數轉為絕對路徑。如果根據引數無法得到絕對路徑,就以當前所在路徑作為基準。除了根目錄,該方法的返回值都不帶尾部的斜槓。
// 例項
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
上面**的例項,執行效果類似下面的命令。
$ cd foo/bar
$ cd /tmp/file/
$ cd ..
$ cd a/../subfile
$ pwd
path.resolve('/foo/bar', './baz')
// '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/')
// '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// 如果當前目錄是/home/myself/node,返回
// /home/myself/node/wwwroot/static_files/gif/image.gif
node14 分層結構資料庫操作
函式 函式作為引數 0.外層函式呼叫的地方,一定是外層函式體先執行,函式和普通函式位址一樣,然後看函式體規定 函式怎麼執行。1.非同步時候使用 函式,無論是否非同步,函式相當於在函式呼叫地方,使用函式的返回值。2.函式也可以看成是擴充套件了函式體的功能,因為 函式可以不一樣,其餘是公用的功能。3.函...
python 14 檔案操作
python中對檔案的讀寫也是非常方便的,本章節將講解讀 寫 讀寫等常用操作。下面講師必要的引數 1 檔案路徑 必須得知道檔案的路徑,不然怎樣進行讀寫?2 編碼方式 utf 8,gbk,gb2312.python3的str是unicode編碼儲存的,我們一般常用utf 8存在,編碼不了解的話容易出現...
C語言基礎 14 檔案操作
calderon函式也可以動態分配記憶體 這個函式可以把分配的所有記憶體內容都設定成0 這個函式也需要包含 stdlib.h標頭檔案 這個函式需要兩個引數,第乙個引數表示希望分配的儲存區個數,第二個引數表示單個儲存區的大小 這個函式的返回值是分配好的第乙個儲存區的位址 這個函式也可能失敗,如果失敗則...