node.js常用的几个模块总结
/*
* 一 util
* 是 node 里面一个工具模块 ,node 里面几乎所有的模块 都会用到 在这个模块
* 功能:
* 1 实现继承 这是主要功能
* 2 实现对象的完整输出
* 3 实现判断数据类型
*
*/
//引入工具类
var util = require("util");
function Parent(){
//继承Parent函数内的内容 为内部继承
this.name = "爸爸";
this.age = "50";
this.sayHello = function(){
console.log("hello");
}
}
//继承Parent的外加属性 为外部继承
Parent.prototype.getName = function(){
console.log(this.name);
}
function Child(){
//不使用inherits实现继承
Parent.call(this);
}
//实现child继承parent
// 工具类 util 里面的inherits 只能继承原型链(prototype)的方法和属性,无法继承类自有(直接写在类里面的)的方法和属性
util.inherits(Child,Parent);
console.log(Child)
/*
*path模块
*
* 功能:格式规范化路径
*
*/
//引入模块
var path = require("path");
var str = "../d\/d/fg/gg//.l";
//格式化不规范的路径
console.log(path.normalize(str));
//拼接路径
var res = path.join("s/b/c/d","../f");
console.log(res);
/*
*fs模块
* 1 操作的文件
* 2 操作目录
*/
/*
*文件部分(都有同步和异步的区分 这里只讨论异步)
*/
var fs = require("fs");
//1 读取文件
//fs.readFile("1.txt","utf-8",function(error,data){
// if(error){
// //console.log("读取文件失败");
// return console.error(error);
// }else{
// console.log(data);
// }
//})
//2 写入文件
//参数:1 路径 2 文件内容 3 可选参数(文件内容的信息) 4 回调函数
//对于参数1,如果路径不存在 会创建新的文件,如果存在会在原文件写入内容
//fs.writeFile("lxl.txt","hello world",{
// flag:"a",//a不会覆盖上一次运行结果 w覆盖上一次运行结果
// encoding:"utf-8"
//},function(error){
//
//});
// 2 写入文件的第二种方式
//fs.appendFile("hhh.txt","真的假的?",function(error,data){//append拼接 默认为 a 的方式
//
//});
//1 fs本身没有提供拷贝方法,自己实现一个
//function Copy(src,desc){
// fs.readFile(src,"utf-8",function(error,data){
// if(error){
//
// }else{
// // 读取成功,写入新文件
// fs.writeFile(desc,data,{flag:"w"},function(error){
//
// })
// }
// })
//}
//
//Copy("lxl.txt","ssss.txt");
//目录操作部分
//1.读取目录
fs.readdir("dir1",function(err,files){
if(err){
console.log("读取失败")
}else{
console.log(files);
}
});
//2.创建目录
fs.mkdir("dir2",0777,function(error){
if (error){
console.log("创建文件夹失败");
}else{
console.log("创建文件夹success");
}
});
//3.判断文件或者文件夹是否存在
fs.exists("1.jpg",function(exist){
console.log(exist);
})
//4.修改文件名
fs.rename("1.jpg","2.jpg",function(err){
if (err){
console.log("修改失败");
}else{
}
})
/*
*
* 前面的文件处理方式(主要指读取数据和写入数据的方法,针对的都是小文件).
* 而对于大数据处理,readile 和 writeFile处理起来都有一定的问题.
* 大数据处理采用 stream 流的方式
*/
//引入fs模块
var fs = require("fs");
//创建读取的数据流
var read = fs.createReadStream("video.mp4");
//实现拷贝一个 video 的副本
var wr = fs.createWriteStream("副本video.mp4");
//stream 之所以可以用来处理大数据,是因为它把数据分隔成一小块一小块来处理,并不是整个文件作为整体去处理.
// 一小块(64kb)
// var times = 0;
// read.on("data",function(chunk){
// times ++;
// wr.write(chunk);
//
// })
// read.on("end",function(){
// console.log(times);
// })
//pipe 是一个管道,用来连接输入流和输出流,读取的数据流,直接通过管道写入的写入流里面
read.pipe(wr);
下面是我的公众号,大家可以关注一下,可以一起学习,一起进步: