nodejs第三天(核心模块与文件模块,核心模块和文件模块引入的区别,从模块外部访问模块内部,使用exports对象,npm包管理工具package.json文件,模块对象属性,将模块定义分类,npm

 

核心模块与文件模块

  ndejs是一个js运行环境,是一个平台。nodejs基于操作系统,封装了一些功能,http,tcp,udp,i/o模块,path,fs,stream等等

  通过nodejs内置的模块,他们就称为核心模块。(他们都是nodejs内置的)http,fs,path等

  文件模块:只要写一个js文件,每一个文件都是模块 。(自己写的js文件都被称为文件模块)

核心模块和文件模块引入的区别

  核心模块有环境变量做调度

  文件模块需要给出文件路径

注意:核心模块是nodejs内置的一些功能模块,文件模块是开发人员编写的js文件

从模块外部访问模块内部成员(运用global,将变量变为全局变量 但是golbal相当于window会造成全局污染)

  在nodejs中一个文件又称为一个模块。从一个模块访问外部模块中变量或方法

  像创建了连个模块,demo1和demo2

  在demo1中声明的ste 方法add()

  在demo2中没有权限访问,如果要访问到的话,就要把变量或方法做成全局属性

  用到golbal来吧str和add函数变为全局属性

  golbal.str="声明变量"

  golbal.add=function(){console.log("函数表达式")}

使用exports对象

  exports这个对象的属性 可以将模块内的方法,变量抛出m、 并且在其他引入的模块中可见(可使用)

  在demo2中就可以访问到str和add()

  //demo1.js内容

    exports.str="hellow"

    exports.hellow=function(){

      console.log("1111")

    }

  //demo2.js内容

     var demo1=require("./demo1.js")

     console.log(demo1.str)

     demo1.hellow()

npm包管理工具

  什么是npm?

    node package management:node包管理工具(主要管理模块)

    模块:核心模块,文件模块

     文件模块又分为:自定义模块,第三方模(· 第三方公司的模块)

     npm就是用来管理和安装第三方模块的

   npm命令详解

    1,npm  -v(version:版本)

      npm  -v查看当前npm的版本号

    2,安装模块

      命令:npm install model name(模块名称)

      比如:安装jquery模块

          npm install jquery

         查看npm中模块清单的命令

         npm list 这个命令会列出所有安装的第三方模块

         卸载模块

         npm uninstall mkname(模块名称)

         卸载jquery就是 npm uninstall jquery

         清单指令

         npm list 当前所有的第三方模块列出来

         查看给定模块的信息

         npm info modelName(模块名字)

         指定模块版本安装

         npm install modename@版本号

package.json文件

  package.json文件作用

    1,用来描述工程信息

    2,描述第三方模块之间的依赖

    注意:1,通过npm init 指令来创建package.json

       2,快速创建package.json文件的命令 npm init -y

          3,给package.json文件增加模块依赖的指令

          npm install 模块名称 --save(将模块增加到当前的package.json中)

模块对象的属性

  什么是模块对象?

    模块:核心模块(nodejs内置), 第三方模块(第三方组织发布), 自定义模块(开发人员)

    每一个文件在nodejs平台上,每个文件都是一个模块。

    定义了一个models他在模块内就是一个模块对象。每一个模块内定义了一个对象就是model(模块)

    每一个model对象都代表当前模块。使用mode.exports时才能把整个模块文件作为一个对象抛出

    模块对象的属性:exports就是model.exports定义属性。

将模块定以类的方式抛出

将模块定义分类

  //class实在ECMAScript2015版本后加入的 es6

    class关键字:确定了一个类型 student以类的概念存在

    //创建一个student类

    student.js内容:

    class stydent {

    //构造函数 是默认自动执行

    //初始化name age 的属性

    //如果在class不写构造函数类会自动初始化一个无参的构造函数

    constructor(n,a){

    this.name = n

    this.age = a 

     }

    //新建一个方法

    add=function(naem,age){

      console.log("this.name"+"今年"+this.age+"岁")  

      }

    }

    //把一个类按模块形式抛出

    moudle.exports=student

 

    demo.js内容

    //引入

     var student =require(“./student.js”) 

       //通过类student实例化一个对象

       var s1 =new student("tom",3)

       s1.add()

npm发布流程

  1,创建一个npm账号

  2,登录npm账号

  3,创建工程项目 npm init 包名称 -y

  4,将工程项目包切换到npm

  5,执行命令 npm publish

安装淘宝镜像

  npm中的淘宝镜像 cnpm

  镜像:把国外的数据放到国内的服务器上。

  cnpm就是把npm平台上的模块功能文件,都放到淘宝的服务器上。国内用户访问就方便了。

  npm install 模块,

  cnpm把npm的功能都复制了一遍,npm的命令在cnpm上都可以使用。

  注:使用 设置淘宝镜像地址

  安装cnpm

  通过npm指令来安装:npm install cnpm -g --registry=https://registry.npm.taobao.org

模块的管理

  1,从node,modules文件夹下边加载

  2,从package.json文件目录下加载

  3,从全局目录中加载

  注:

上一篇:CommonJS 规范的理解


下一篇:nodejs的一些基操