1.util模塊應用實例
以js中繼承特性特性為例
/*
*util工具模塊
* 1.實現繼承
* 2.輸出對象
* 3.類型驗證
*
*inherits原型繼承方法
*inspect返回一個對象的字符串表現形式
* 判斷類型isArrayis....
* */
var util = require("util");//引入工具模塊
function Person(name) {
this.name = name;
this.show = function () {
console.log(name);
}
}
Person.PRototype.sayhello = function () {
console.log("hello");
}
function Son() {
// Person.call(div,name,age)
Person.apply(this,arguments);//通過arguments繼承參數this的所屬Person
}
//原型繼承
util.inherits(Son,Person);
var obj = new Son("小明");
obj.sayhello();
//inspect把對象轉為字符串
// console.log(typeof util.inspect(obj);
// typeof [] == "Array"
console.log(util.isArray([]));//返回是數組
終端node運行該文件,返回hello,返回true表示util輸出為數組
2.even模塊實例
events事件模塊,
綁定事件 on addListener
移除綁定事件removeListener
emit觸發事件
一下實例模擬了一個小游戲,當da執行一次輸出啊,hp用完,則輸出“死了”。
var events = require("events");
var util = require("util")//工具類
function Person(){
this.hp=3;
}
//person構造函數繼承事件對象方法
util.inherits(Person,events);
var obj=new Person();
//once綁定事件 只能執行一次 后面調用無效
obj.once("die",function(){
console.log("死了");
})
obj.on("haha",da)
function da(){
this.hp--;
if(this.hp<=0)this.emit("die");
else console.log("啊");
}
obj.emit("haha");//模擬觸發事件
obj.removeListener("haha",da);//清除事件監聽 下面會報錯
obj.emit("haha");
obj.emit("haha");
obj.emit("haha");
終端node運行該文件,只輸出一個啊,da事件被清除,程序停止運行
3.path模塊實例
path路徑處理模塊
path.normalize(url)規范化字符串路徑
path.dirname(url)返回路徑中文件夾的名稱
path.basename(url,'后綴')返回路徑中的最后哦一部分
path.join(url1,url2,....)
__dirname當前文件目錄的絕對路徑
resolve:把參數解析為一個絕對路徑
1.是以應用程序的根目錄作為起點
2.普通字符串代表當前目錄的下一級目錄
3.如果沒有下一個參數,返回當前目錄
4./代表盤符的根目錄
//1加載模塊
var path = require("path");
//2獲取當前文件的當前目錄絕對地址
console.log(__dirname);
//獲取當前文件名
console.log(__filename);
//3獲取當前文件名
var url = path.basename(__filename,"js");
console.log(url);
var url ="nodejs/test/CSS/../js/../../img";
url=path.normalize(url);//規范化地址
console.log(url);//nodejs/img
var url1 =path.join(__dirname,"a","b","..","CSS");//當前目錄找到a再找到b,..返回a,輸出a的CSS
console.log(url1);
var url2 =path.resolve("test","css");//前面加一個/表示當前目錄,如果不加表示絕對路徑
console.log(url2);
新聞熱點
疑難解答