zoukankan      html  css  js  c++  java
  • 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);
     
    下面是我的公众号,大家可以关注一下,可以一起学习,一起进步:

  • 相关阅读:
    浅谈缓存管理
    [Architecture Pattern] Database Migration (上)
    knockout.js的学习笔记4
    cenOS5.5安装oracle10g(傻瓜篇)
    SportsStore:管理 — 精通ASP.NET MVC 3
    ASP.NET MVC下的异步Action的定义和执行原理
    基于EF 4.3.1 Code First的领域驱动设计实践案例
    asp.net缓存
    《Pro ASP.NET MVC 3 Framework》部署
    Asp.Net MVC 3.0【Hello World!】
  • 原文地址:https://www.cnblogs.com/lxl0419/p/5790748.html
Copyright © 2011-2022 走看看