nodejs模块(暴露接口和引入模块)

1.建立一个模块

eg.Market.js

//---------------------------------------------------------------------------------------------------

function createMark(marketName){

this.marketName = marketName;

console.info('you create a market which name is '+this.marketName+'!!!');

function getMarketName (){

return this.marketName;

}

exports.createMark = createMark;

exports.getMarketName = getMarketName;

//---------------------------------------------------------------------------------------------------

eg. Main.js

//---------------------------------------------------------------------------------------------------

var mark = require('./Market.js');

mark.createMark('dapaer`s market');

console.info('mark`s name is ' + mark.getMarketName());

//---------------------------------------------------------------------------------------------------

通过exports去暴露模块的成员或方法(暴露公开的api)

有两种方式

1.module.exports.xxx = 模块里面的某个接口

2.exports.xxx = 模块里面的某个接口

这两者的区别

1.exports 是module.exports的引用指向同一个内存地址

2.require需要返回的是module.exports而不是exports,如果此时exports仍为module.exprots的引用则没有关系,如果不是则会报错。

           --》不是的情况:eg.exports = function(){xxx}或者exports = {}//一个新的对象,则会将原来的引用关系破裂,此时若是暴露module.exports = function(){xxx}或者module.exports = {}//一个新对象,不会报错,因为返回的仍然是require需要的。

通过require去加载模块

eg. var market = require('./Market.js')//.代表当前目录下

这段代码表达用require加载Market.js这个模块,返回了module.exports暴露出来的所有方法到market这个对象上

补充

所谓的引用是指指向同一个内存地址

eg. var personA = {Name:'TOM'};

      var personB = personA;

     此时personB是personA的引用

     如果此时将personB的属性Name 修改personA同样也会修改因为他们指向同一个内存地址,若此时将personB = {Name:'Candy'},则此时personA不会被改变,因为已将personB重新赋值,personB不再是personA的引用了,这里可以解释上的exports和module.exports的关系。

最后运行


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模块 Node 有简单的模块加载系统。在 Node 里,文件和模块是一一对应的。下面例子里,foo.js加载同一个...
    保川阅读 610评论 0 0
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,639评论 2 41
  • 什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js...
    半世韶华忆阑珊阅读 673评论 0 0
  • 扇风:孙子兵法
    秋日私语书笺阅读 113评论 0 2
  • 我爱你,这句话,是有很深刻,很深刻的意义。 二十出头的我,在国内,没有任何权利,能力说:我爱你,香香。 两个人的世...
    玉佳阅读 275评论 0 0