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);
 
下面是我的公眾號,大家可以關注一下,可以一起學習,一起進步:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM