NodeJs模块实例03_util、even和path

来源:互联网 发布:搞怪专家软件下载 编辑:程序博客网 时间:2024/05/17 06:36

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);

0 0