系統(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() 方法將路徑或路徑片段的序列解析為絕對(duì)路徑阿纤。
給定的路徑序列從右到左進(jìn)行處理句灌,每個(gè)后續(xù)的 path 前置,直到構(gòu)造出一個(gè)絕對(duì)路徑欠拾。 例如胰锌,給定的路徑片段序列:/foo、 /bar藐窄、 baz资昧,調(diào)用 path.resolve('/foo', '/bar', 'baz') 將返回 /bar/baz。
如果在處理完所有給定的 path 片段之后還未生成絕對(duì)路徑枷邪,則再加上當(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)前文件的絕對(duì)路徑
二东揣、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)會(huì)傳入兩個(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)容种樱,會(huì)將現(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巷疼、分別對(duì)應(yīng)的應(yīng)用場(chǎng)景沒有