入门nodeJs(第二课)

一、commonJs范例

说到commonjs的范例,为何会有这个东西的涌现呢?这就不得不说ECAMAScript的缺点,那末有什么缺点,以下几点:

1、没有模块体系

2、规范库较少

3、没有规范接口

4、缺少治理体系

模块化

1、假如程序设计的范围到达一定水平,则必需对其举行模块化。
2、模块化可以有多种形式,然则最少应当供应可以将代码分割为多个源文件的机制。
3、CommonJs的模块功用可以协助我们处理该题目。

CommonJs范例

1、commonJs范例的提出,重要为了填补当前Javascript没有规范的缺点。
2、commonJs范例为Js指定了优美的愿景,愿望js可以在任何地方运用。
3、commonJs对模块的定义非常简朴

  • 模块援用
  • 模块定义
  • 模块标识

模块的定义

《入门nodeJs(第二课)》

模块的援用

《入门nodeJs(第二课)》

这个时刻我怎样考证我的模块1引入胜利了呢? 是否是我实行模块2的代码,看看模块1是否是被实行呀!

《入门nodeJs(第二课)》

这时刻作为初学者的我来讲,以为这个引入没有意义啊,为何呢?由于这个不就相当于实行了模块1嘛,我想一定不是这模样的啊,一定是要在模块1中定义的变量或许要领,在模块2中可以运用才是有意义的嘛,那末我们在模块1中先如许捣鼓两个变量看看行不行? 实践出真知,走起!
《入门nodeJs(第二课)》

module01.js:
《入门nodeJs(第二课)》

module02.js:
《入门nodeJs(第二课)》

天啦噜!卧槽!!!!白引入了啊。

《入门nodeJs(第二课)》

实在不然,在Node中的运用不是这模样的兄dei姐mei。

运用require()引入模块今后,该函数会返回一个对象,这个对象代表的是引入的模块

module02.js
《入门nodeJs(第二课)》

《入门nodeJs(第二课)》

哎呦这个怎样一贫如洗啊,我在模块1中定义的变量呢?? 怎样弄啊? 烦死了,兄弟不要烦,另有一个知识点,须要通知你。

在Nodejs中,每个js文件中的js代码自力运转在一个函数中的,那末在全局中就看不见了,所以不是全局作用域
所以一个模块中的变量和函数在其他的模块中是无法访问的。

那末人人都是密闭的玩,那模块和模块之间就没得玩了,么的聊了,那末怎样办,就须要我的模块向外部暴露属性或许要领。
我们可以经由过程exports【看成一个全局变量】,来向外部暴露变量或许要领,
运用体式格局:

  • 只须要将须要暴露给外部的变量和要领设置为exports的属性即可

module01.js
《入门nodeJs(第二课)》

module02.js运转的效果为:

《入门nodeJs(第二课)》

好了好了,胜利了哦!!!

《入门nodeJs(第二课)》

模块的示意

我们运用 require() 引入外部模块时,运用的就是模块的标识,我们可以经由过程模块的标识来找到指定的模块。
模块分为两大类:

  • 中心模块: 由node引擎供应的模块。
    中心模块的标识照样途径吗,实在可所以模块的名字

《入门nodeJs(第二课)》

  • 文件模块: 由用户本身建立的模块。
    文件模块的标识就是我们定义模块的途径,可所以相对或绝对途径。

学完了得练一练吧,干起来!!!

定义:
《入门nodeJs(第二课)》

引入:
《入门nodeJs(第二课)》

实行效果:

《入门nodeJs(第二课)》

搞定!!!!!!不积跬步无以致千里!!!

《入门nodeJs(第二课)》

    原文作者:SunnyFo
    原文地址: https://segmentfault.com/a/1190000017766551
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞