Node內建模組之path,fs,events

2021-10-24 22:34:13 字數 3161 閱讀 4703

path

拼接路徑

const path = require('path');

const basepath = '/user/lsh';

const filename = 'abc.txt';

方法1拼接

const filepath1 = path.resolve(basepath, filename);

方法2拼接

const filepath2 = path.join(basepath, filename);

得到的結果都是

../user/lsh/abc.txt

resolve和join的區別,resolve會判斷拼接的路徑字串中,是否有以/或./或…/開頭的路徑fs

fs的三種使用方式

1.同步操作

const info = fs.statsync(filepath);

console.log("後續需要執行的**"); //先列印

console.log(info);

2.非同步操作

fs.stat(filepath, (err, info) => 

console.log(info);

console.log(info.isfile());

console.log(info.isdirectory());

});console.log("後續需要執行的**"); //先列印

3.promise

fs.promises.stat(filepath).then(info => ).catch(err => );

console.log("後續需要執行的**"); //先列印

檔案描述符

const fs = require('fs');

fs.open("./abc.txt", (err, fd) =>

// 通過描述符去獲取檔案的資訊

fs.fstat(fd, (err, info) => )

})

檔案的讀寫

const fs = require('fs');

// 1.檔案寫入

const content = "你好";

fs.writefile('./abc.txt', content, , err => );

// 2.檔案讀取

fs.readfile("./abc.txt", , (err, data) => );

資料夾操作

const fs = require('fs');

const path = require('path');

1.建立資料夾

const dirname = './lsh';

//判斷資料夾是否存在

if (!fs.existssync(dirname)) );

}

2.讀取資料夾中的所有檔案

fs.readdir(dirname, (err, files) => );

function getfiles(dirname) , (err, files) => else

}});

}getfiles(dirname);

3.重新命名,前面為舊,後面為新

fs.rename("./lsh", "./james", err => )
events

const eventemitter = require("events");
events基礎方法

1.建立發射器

const emitter = new eventemitter();
2.監聽某乙個事件

emitter.on('click', (args) => )

const listener2 = (args) =>

emitter.on('click', listener2)

3.發出乙個事件

settimeout(() => , 2000);
events獲取資訊

1.建立發射器

const emitter = new eventemitter();
2.監聽某乙個事件

emitter.on('click', (args) => )

const listener2 = (args) =>

emitter.on('click', listener2)

emitter.on("tap", (args) => )

3.獲取註冊的事件

console.log(emitter.eventnames());

console.log(emitter.listenercount("click"));

console.log(emitter.listeners("click"));

events不常用方法

1.建立發射器

const emitter = new eventemitter();
2.監聽某乙個事件

emitter.once('click', (arg1, arg2, arg3) => )

const listener2 = function(arg1, arg2, arg3)

emitter.on('click', listener2)

// 將本次監聽放到最前面

emitter.prependlistener('click', (arg1, arg2, arg3) => )

emitter.on("scroll", (args) => )

3.發出乙個事件

settimeout(() => , 2000);

console.log(arguments);

console.log(this);

node核心模組path,fs的常用api

node作為js在服務端執行的容器,以及npm包依賴管理工具,使得node的應用越來越廣泛。node有很多模組和api,這也導致很多人不知道怎麼學習node,而掌握其核心模組的核心api是首要的。fs模組 提供檔案的讀寫操作,具有非同步和同步的api fs.readfileasync path,ut...

node內建模組

let fs require fs 1.fs.mkdir fs.mkdirsync 建立資料夾,有sync的是同步建立,反之是非同步,想要實現無阻塞i o,一般非同步 fs.mkdir less err 2.fs.readdir fs.readdirsync 讀取檔案目錄中的 let fs requ...

node內建path模組

path.extname,引數傳入需要解析的字串路徑 let strpath let info path.extname starpath console.log info jpgpath.resolve,可傳入多個字串引數,將字串拼接成路徑並將當前程式執行系統盤作為路徑起點 c lala baid...