资讯专栏INFORMATION COLUMN

入门nodeJs(第二课)

Mertens / 1706人阅读

摘要:模块化可以有多种形式,但是至少应该提供能够将代码分割为多个源文件的机制。规范规范的提出,主要为了弥补当前没有标准的缺陷。规范为指定了美好的愿景,希望能够在任何地方使用。学完了得练一练吧,干起来定义引入执行结果搞定不积跬步无以至千里

一、commonJs规范

说到commonjs的规范,为什么会有这个东西的出现呢?这就不得不说ECAMAScript的缺陷,那么有什么缺陷,如下几点:

1、没有模块系统
2、标准库较少
3、没有标准接口
4、缺乏管理系统
模块化

1、如果程序设计的规模达到一定程度,则必须对其进行模块化。
2、模块化可以有多种形式,但是至少应该提供能够将代码分割为多个源文件的机制。
3、CommonJs的模块功能可以帮助我们解决该问题。

CommonJs规范

1、commonJs规范的提出,主要为了弥补当前Javascript没有标准的缺陷。
2、commonJs规范为Js指定了美好的愿景,希望js能够在任何地方使用。
3、commonJs对模块的定义十分简单

模块引用

模块定义

模块标识

模块的定义

模块的引用

这个时候我怎么验证我的模块1引入成功了呢? 是不是我执行模块2的代码,看看模块1是不是被执行呀!

这时候作为初学者的我来说,觉得这个引入没有意义啊,为什么呢?因为这个不就相当于执行了模块1嘛,我想肯定不是这样子的啊,肯定是要在模块1中定义的变量或者方法,在模块2中可以使用才是有意义的嘛,那么我们在模块1中先这样捣鼓两个变量看看行不行? 实践出真知,走起!

module01.js:

module02.js:

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

其实不然,在Node中的使用不是这样子的兄dei姐mei。

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

module02.js

哎呦这个怎么一穷二白啊,我在模块1中定义的变量呢?? 怎么弄啊? 烦死了,兄弟不要烦,还有一个知识点,需要告诉你。

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

那么大家都是密闭的玩,那模块和模块之间就没得玩了,么的聊了,那么怎么办,就需要我的模块向外部暴露属性或者方法。
我们可以通过exports【当作一个全局变量】,来向外部暴露变量或者方法,
使用方式:

只需要将需要暴露给外部的变量和方法设置为exports的属性即可

module01.js

module02.js运行的结果为:

好了好了,成功了哦!!!

模块的表示

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

核心模块: 由node引擎提供的模块。
核心模块的标识还是路径吗,其实可以是模块的名字

文件模块: 由用户自己创建的模块。
文件模块的标识就是我们定义模块的路径,可以是相对或绝对路径。

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

定义:

引入:

执行结果:

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100721.html

相关文章

  • 互联网金融爬虫怎么写-二课 雪球网股票爬虫(正则表达式入门

    摘要:系列教程互联网金融爬虫怎么写第一课网贷爬虫入门上一节课我们一起通过一个网贷爬虫,深入了解了一下以及其在最终实际使用中的写法。可以毫不夸张的说,对于写简单爬虫来说,最最重要的,就是使用好,以及这一课要讲的正则表达式。 系列教程: 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)  上一节课我们一起通过一个p2p网贷爬虫,深入了解了一下XPath以及其在最终实际使用中的写法。...

    wenyiweb 评论0 收藏0
  • 互联网金融爬虫怎么写-二课 雪球网股票爬虫(正则表达式入门

    摘要:系列教程互联网金融爬虫怎么写第一课网贷爬虫入门上一节课我们一起通过一个网贷爬虫,深入了解了一下以及其在最终实际使用中的写法。可以毫不夸张的说,对于写简单爬虫来说,最最重要的,就是使用好,以及这一课要讲的正则表达式。 系列教程: 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)  上一节课我们一起通过一个p2p网贷爬虫,深入了解了一下XPath以及其在最终实际使用中的写法。...

    entner 评论0 收藏0
  • 体验jaivascript之美二课 全局对象、外部环境、声明提升

    摘要:全局对象在程序任何地方都能访问到的对象,在浏览器中是变量指向在中是什么外部环境暂时不讲。函数声明直接提前。执行过程,函数执行和销毁过程。变量预解析,赋值外部环境之间的关系。如果做不对,继续找,直到合格。 当程序在浏览器中运行的时候,js引擎会产生三个东西。 showImg(https://segmentfault.com/img/bVMjv4?w=890&h=422);1.全局对象 ...

    icyfire 评论0 收藏0
  • TRY REGEX:正则表达式交互式入门教程 翻译&解答

    摘要:写一个正则表达式来测试变量中是否包含字符串。用函数给出不使用字符,但和等价的正则表达式。第十四课标志全局匹配标志第二个常用的标志是全局匹配标志,用字母表示。写出一个正则表达式来检验合法性。非捕获组的主要用途是给一个组赋予量词。 TRY REGEX 是一个交互式的正则表达式学习项目项目地址:https://github.com/callumacra...在线地址:http://tryre...

    李义 评论0 收藏0

发表评论

0条评论

Mertens

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<