在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
运行结果如下
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命令,运行结果如下所示