浅谈节点模块与npm包管理工具

  

在node . js中,以模块为单位划分所有的功能,并且提供了一个完整的模块加载机制,所以我们可以将应用程序划分为各个不同的部分,并且对这些部分进行很好的协同管理。通过将各种可重用代码编写在各种模块中的方法,可以大大减少应用程序的代码量,提高应用程序的开发效率以及应用程序代码的可读性。通过模块加载机制,可以将各种第三方模块引入到我们的应用程序中。

  

在node . js中,提供npm包管理工具,用于从第三方网站上下载各种node . js包。

  

<强>一、模块

  

<强> 1.1加载模块

  

在node . js中,以模块为单位划分所有的功能,一个node . js应用程序由大量的模块组成,每一个模块都是一个JavaScript文件,在加载节点。js中预先定义的核心模块,我们只需要要求(“模块名”),例如需要(“http”),在将第三方类库引入到我们的应用程序时,需要指定该文件的完整路径及文件名,例如需要(“。/脚本/foo.js”)

  

<强> 1.2访问模块

  

<强> 1.2.1使用出口对象访问

  

在一个模块文件中定义变量,函数或对象只在该模块内有效,当你需要从外部模块引用这些变量,函数或对象时,需要再改模块内,例如,建一个testModule.js,代码如下:

        var testVar="现在你能看见我& # 63;";   var funName=function(名字){   控制台。日志('我的名字是' +名字);   }   出口。testVar=testVar;   出口。funName=funName;      

那么我们想在http.js中使用这些变量,函数或对象,可在http.js中书写如下代码:

        var test1=要求('/testModule.js。');//通过test1访问testModule。js模块内的testVar变量和funName函数   console.log (test1.testVar)   test1.funName (Luckfine)      

节点运行下这个http。js节点http。js
  

  

运行结果如下

  

浅谈节点模块与npm包管理工具“> <br/>
  </p>
  <p> <强> 1.2.2使用module.exports对象访问</强> </p>
  <p>当你需要从外部模块引用这些变量,函数或对象时,使用出口对象,也可以使用module.exports,但是需要将模块定义一个类时,只能用module.exports。</p>
  <p>例如定义一个testModule类,在testModule.js中如下代码:</p>
  
  <pre类=   var _name, _age   var name=",年龄=0;   var foo=函数(姓名、年龄){   _name=名称;   _age=年龄;   }//获取私有变量_name的变量只   foo.prototype。GetName=function(名字){   返回_name;   };//设置私有变量_name的变量的值   foo.prototype。SetName=function(名字){   _name=名称;   }//获取私有变量_age的变量只   foo.prototype。GetAge=函数(年龄){   返回_age;   };//设置私有变量_name的变量的值   foo.prototype。SetAge=函数(年龄){   _age=年龄;   }   foo.prototype.name=名称;   foo.prototype。年龄=年龄;   模块。出口=foo;   之前      

那么我们想在http.js中使用这个类的变量,函数或对象,可在http.js中书写如下代码:

        var foo=要求('/testModule.js。');   var myFoo=new foo (Luckfine, 18);      console.log(“获取修改前的私有变量值”)   console.log (myFoo.GetName ());   console.log (myFoo.GetAge ());      console.log(“修改私有变量”);   myFoo.SetName('宝贝');   myFoo.SetAge (16);      console.log(“获取修改后的私有变量值”)   console.log (myFoo.GetName ());   console.log (myFoo.GetAge ());         console.log(“获取修改前的公有变量值”)   console.log (myFoo.name);   console.log (myFoo.age);      console.log(“修改公有变量”)   myFoo.name=疤滥贰?   myFoo。=20岁;      console.log(“获取修改后的公有变量值”)   console.log (myFoo.name);   console.log (myFoo.age);      之前      

然后在摘要中运行节点http.js命令,运行结果如下所示

  

浅谈节点模块与npm包管理工具“> <br/>
  </p>
  <p>总结以上:<br/>
  </p>
  <p>也就是说,js文件和js文件之间有两种合作的模式:<br/>
  1)某一个js文件中,提供了函数,供别人使用。只需要暴露函数就行了;exports.msg=味精;<br/>
  2)某一个js文件,描述了一个类,模块。出口=人;<h2 class=浅谈节点模块与npm包管理工具