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);
新闻热点
疑难解答