zoukankan      html  css  js  c++  java
  • Node.js基础学习(第二幕)

    Node.js的模块系统
        Node.js中使用"Module(模块)"来规划不同的功能对象。
      模块的分类:
     (1)核心模块——nodejs的内置模块

        
     (2)第三方模块(https://www.npmjs.com  常用的第三方模块:express、less、grunt...)
     (3)自定义模块: 每一个被加载的.js文件对应一个模块对象,包含相应的功能和函数。
        模块中声明的变量或函数的作用域是“模块作用域”,不是golbal的成员,默认只能在当前js文件(即当前模块)中使用。
        Node.js启动时运行的第一个模块,称为“主模块”。——mail module,也是自身模块。
        除主模块之外的其他模块,称为“子模块”。
        获取主模块对象:process.mainModule  require.main
        每一个模块都可以导出(exports)自己内部的对象供其他模块使用,也可以引入(require)并使用其他模块中导出的对象。
        每一个模块内部都可以使用一个变量叫“module”,指向当前模块自己。
        判断当前模块是否是主模块:module===process.mainModule

     创建模块:文件式自定义模块

        

     加载模块:其他js文件中调用

         

      
       预定义的模块作用域成员:
        __dirname      当前模块文件所在的目录
        __filename     当前模块文件所在目录及文件名
        module          指向当前模块的引用
        module.exports  指向当前模块中待导出的供其他模块使用的对象
        exports          指向module.exports对象的引用
        require          引入其他模块,使用其他模块的module.exports对象

       自定义模块:
        (1)文件模块
            没有后缀的文件模块,被作为js文件加载;.js后缀的文件模块,被作为js文件加载; .json后缀的文件模块,被作为JSON字符串加载,自动转换为对象;.node后缀的文件模块,被作为C/C++二进制加载;

       
        (2)目录模块:在引入是只需要引入目录名的四种形式:
            包含package.json文件的目录:package.json中包含一个main属性,指向该模块的js文件——> {"main":"xx.js"};
            包含index.js文件的目录;
            包含index.json文件的目录;
            包含index.node文件的目录;
          模块查找顺序:(1)文件/目录模块的缓存;(2)原生模块的缓存;(3)原生模块;(4)文件/目录模块;
      包(package):是根据CommonJS规范,对模块进行标准封装;
           包规范:包是一个目录;目录中包含一个包说明文件package.json,存放于包顶级目录下;目录中包含js文件,放在lib目录下,如果有index.js,可以放到顶级目录下;二进制文件应该放到bin目录下;文档应该放到doc目录下;单元测试文件应该放到test目录下;
          CommonJS规范要求,包应该位于当前目录或者父目录下的node_modules文件夹下,require函数由近及远进行查找。
      npm——包管理器
          Node.js的包管理工具,用于下载、安装、升级、删除包,或者发布并维护包。
          npm官网:www.npmjs.com
          包的下载安装:
          (1)下载到当前目录:npm install 包名 会安装到指定目录下的node_modules文件夹下 查看目标路径:npm root
          (2)下载到全局:npm install 包名 -g  会下载到npm目录下  查看目标路径:npm root -g
          包的生成:使用npm init 命令可以在当前目录下生成一个package.json文件;
          包的发布:将自定义的包发布到npmjs.com上:
            (1)在www.npmjs.com注册账号;
            (2)使用npm  adduser命令注册或者登陆已有账号;
            (3)进入到配置完成的包目录,使用npm publish命令发布包;
            (4)搜索或下载使用;
          更新包:npm update 包名;  删除包:npm uninstall 包名;
      
    Node.js核心模块
    1、console
        global.console    用于向stdout和stderr执行输出
        console class    console模块中的Console构造函数,可以向任意输出流(文件)中执行输入
      
    2、Query String:提供了处理url中“查询字符串”部分的相关操作
        parse()    //从查询字符串中解析出数据对象,参数为要解析的查询字符串
        stringify()    //将数据对象转换为查询字符串格式,参数1,要转换的对象;可选参数2,指向键值对之间的分隔符;可选参数3,执行键和值之间的分隔符;

        
    3、Url模块: 提供了处理url中不同部分的相关操作
        parse()    //解析出url中的各个组成部分,参数1:要解析的url字符串;可选参数2:将查询字符串部分(query)解析为对象,值为true或false
        format()    //将对象反向格式化为url格式,参数为url对象
        resolve()    //根据基地址解析出相对url,参数1:基地址;参数2,相对地址

        
    4、Path模块:提供了对文件路径进行操作的相关方法
        parse()    //解析一个路径为对象,参数为路径字符串
        format()    //将路径对象格式化为字符串,参数为路径对象
        resolve()    //根据基础路径解析出一个目标路径的绝对地址,参数1:基础路径;参数2,目标路径
        relative()    //根据基础路径,获取目标路径与其的相对关系,参数1:基础路径;参数2,目标路径

        
    5、Dns模块: 提供了域名到IP地址的双向解析功能
        lookup()    //将一个域名解析为IP地址,从操作系统中查询(缓存)
        resolve()    //将一个域名解析为一个dns记录解析数组,从dns服务器上查询
        reverse()    //把一个IP地址反向解析为一组域名(很多情况下解析不出来你没)

        

      
    6、Util模块:工具模块
        format()    //使用带占位符的方式格式化字符串
        inspect()    //返回一个对象的字符串表示
        inherits()    //实现构造方法之间的继承

        
    7、Buffer: 缓冲区,一块专用于存储数据的内存区域;它是全局对象Global的成员,使用时无需引入。

      
    8、fs模块:fs模块提供了文件读写、更名、删除、遍历目录等操作
        常用class:
        fs.stats    //文件或目录的统计信息描述对象
        fs.ReadStream    //stream.Readable接口的实现对象
        fs.WriteStream    //stream.Writeable接口的实现对象
        fs.FSWatcher    //可用于监视文件修改的文件监视器对象

      ---------------------------------------------------------------------------------------
        常用方法:
        fs.mkdir()        //创建目录
        fs.rmdir()        //删除目录
        fs.readdir()    //读取目录下的内容
        fs.readFile()    //读取文件的内容
        fs.writeFile()    //向文件中写入内容
        fs.appendFile()    //向文件中追加内容
        fs.unlink()        //删除文件
        fs.rename()    //重命名文件
        fs.stat()        //用于返回一个文件或目录的统计信息对象(fs.stats对象)
        以上方法中都有异步和同步(Sync)两种;所有的异步方法都有一个回调函数,回调函数中的第一个参数都是I/O错误对象err
        ---------------------------------------------------------------------------------------
        fs.stat() & fs.statSync()    //用于返回一个文件或目录的统计信息对象(fs.stats对象)
        fs.stats对象方法:
            stats.isFile()            //是否为文件
            stats.isDirectory()    //是否为目录
        ---------------------------------------------------------------------------------------
        操作目录:
        fs.mkdir()     & fs.mkdirSync()       //创建目录
        fs.rmdir()     & fs.rmdirSync()       //删除目录
        fs.readdir()   & fs.readdirSync()    //读取目录下的内容

      

       

  • 相关阅读:
    网络编程之Tcp,udp
    网络编程简介
    面向对象之高级篇 反射,元类
    面向对象 高级篇
    面向对象,继承
    初识面向对象
    包 hashlib,logging
    模块
    Dango生命周期回顾与forms组件
    Django中auth登录、注册、修改密码、退出、ORM自关联
  • 原文地址:https://www.cnblogs.com/7662-scy/p/6429896.html
Copyright © 2011-2022 走看看