系統(tǒng)模塊

系統(tǒng)模塊

1、使用require()引入,但是不需要下載。

一、path()

1、用于處理文件路徑和目錄路徑的。使用方式:
const path = require('path');

http://nodejs.cn/api/path.html#path_path_extname_path

path中的方法:

1、dirname()方法返回 path 的目錄名。使用方式:
path.dirname('/foo/bar/baz/asdf/quux'); // 返回: '/foo/bar/baz/asdf'

2、basename() 方法返回 path 的最后一部分。
path.basename('/foo/bar/baz/asdf/quux.html');// 返回: 'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html'); // 返回: 'quux'

3、extname() 方法返回 path 的擴(kuò)展名,從最后一次出現(xiàn) .(句點(diǎn))字符到 path 最后一部分的字符串結(jié)束;
path.extname('index.html');// 返回: '.html'
path.extname('index.coffee.md');// 返回: '.md'

4、resolve() 方法將路徑或路徑片段的序列解析為絕對路徑。
給定的路徑序列從右到左進(jìn)行處理,每個(gè)后續(xù)的 path 前置,直到構(gòu)造出一個(gè)絕對路徑。 例如,給定的路徑片段序列:/foo、 /bar、 baz,調(diào)用 path.resolve('/foo', '/bar', 'baz') 將返回 /bar/baz。

如果在處理完所有給定的 path 片段之后還未生成絕對路徑,則再加上當(dāng)前工作目錄。
path.resolve('/foo/bar', './baz');// 返回: '/foo/bar/baz'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果當(dāng)前工作目錄是 /home/myself/node,
// 則返回 '/home/myself/node/wwwroot/static_files/gif/image.gif‘’

path.resolve(__dirname,'index.js') // 可以獲取當(dāng)前文件的絕對路徑

二、fs

1、fs(文件系統(tǒng)),用于文件的讀寫操作
http://nodejs.cn/api/fs.html
使用require引入,例:
let fs = requrie('fs');

fs的方法

1、readFile :異步地讀取文件的全部內(nèi)容。
有兩個(gè)參數(shù):fs.readFile(path[, options], callback)
(1)第一個(gè)為:path <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符
(2)第二個(gè)是回調(diào)函數(shù)。調(diào)會傳入兩個(gè)參數(shù) (err, data),其中 err是錯(cuò)誤信息、data 是文件的內(nèi)容就是拿到的數(shù)據(jù)。

fs.readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});

2、watchFile :異步地將數(shù)據(jù)寫入到一個(gè)文件,如果文件已存在則覆蓋該文件。
fs.writeFile(file, data[, options], callback) 有三個(gè)參數(shù)
(1)第一個(gè)參數(shù): file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符。
(2)寫入的內(nèi)容,會將現(xiàn)有的覆蓋,添加{flag:"a"},可以不被覆蓋,但是 ???疑問???。 data 可以是字符串或 buffer。

fs.writeFile('b.text','月薪X',{flag:"a"},(err)=>{
  if(err) throw err;
  console.log(data)
})

(3)如果 options(可選參數(shù)) 是一個(gè)字符串,則它指定字符編碼;例:
fs.writeFile('文件.txt', 'Node.js中文網(wǎng)', 'utf8', callback);
(4)第三個(gè)參數(shù),回調(diào)函數(shù)

3、readFileSync :同步地讀取文件的全部內(nèi)容。
fs.readFileSync(path[, options]) 同步的,沒有回調(diào)函數(shù)

  let data = fs.readFileSync('./a.text');

4、fs.writeFileSync :同步將數(shù)據(jù)寫入到一個(gè)文件。(同步的,沒有回調(diào)函數(shù))

  fs.writeFile('b.text','月薪X');

疑問:

1、同步異步的區(qū)別沒有體現(xiàn)出來
2、分別對應(yīng)的應(yīng)用場景沒有

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容