ADM-201 dump PMP dumps pdf SSCP exam materials CBAP exam sample questions

《网络忍者NodeJS入门》#7 模块的模式 – 译学馆
未登录,请登录后再发表信息
最新评论 (0)
播放视频

《网络忍者NodeJS入门》#7 模块的模式

Node JS Tutorial for Beginners #7 - Module Patterns

大家好 欢迎来到第七节nodejs教程
本节视频中 我们将会看到几种不同的模块模式
上节教程中 我们又前进了一步 并且创建了我们的第一个模块
我们把那个模块命名为count.js 对吧
我们要做的就是使用module.exports
这里是函数counter
这样它就可以被访问了
无论在哪个模块里 只要我们导入了都可以访问它
我们可以做一些事 就像这样 我们可以使用这里的counter
因为我们已经把它存储在这个变量里了
但是如果我们要返回一些东西呢
如果这不只是一个counter模块
而是一个返回各种数学表达的模块呢
首先把它重命名 我把它叫做stuff
因为它不只是一个counter 还有许多其他东西
stuff是一个非常酷的模块名称
我们要做的是把这里更新为“require(‘./stuff’)”
好了 我们保存一下
现在我们要做的是在这个模块里创建几个函数 后面可以使用它们
我要创建另一个变量 叫做adder
它要把两个数相加 所以我使它等于一个函数
这个函数需要a和b两个数
然后我们需要返回一个字符串
字符串的内容是这两个数字的和是多少
首先是return
这次我要用模板字符串 它是ES6(ECMAScript 6)新加入的内容
模板字符串使用反引号“`” 而不是引号
键盘上的反引号键通常在左上角 Esc键的下面
模板字符串的不同之处在于
我们可以在其中嵌入值或表达式
而不用像这样连接它们
我会演示给你们看
我要写“The sum of the 2 numbers is”
要嵌入一个值我们需要使用$符号
然后是大括号 放入其中的表达式必须是可计算的
所以我要做的就是a+b
这样我们就不需要连接了 因为它在模板字符串里
非常棒
现在在我们要导出的这个模块里有了第二个函数
还有一件事要做 创建变量pi 并使它等于一个数
pi等于3.142
我知道我们可以在javascript的math对象中得到这个值
但是我只是在演示如何导出不同的东西
我们保存一下 我希望这三个东西都可以被访问到
就在这里 当我们需要这个模块的时候
我们要怎么做呢 在这我们已经说过module.exports=counter
我们把它设置为这个变量
module.exports刚开始只是一个空对象
我们可以给这个对象添加一些属性
我们可以这样写 module.exports.counter=counter
就是让exports对象
的counter属性等于这个函数
所以说我们可以添加许多属性
并让每个属性都等于这个模块中的不同函数
我们把这段代码复制一下 并粘贴到下面
把counter改为adder 并让它等于adder函数
这样我们就在exports对象的不同属性上
导出了counter和adder
现在我们来导出第三个 这次我们就叫它pi
就让它等于pi就可以了
现在我们把这三个东西都导出了
现在在任何导入这个模块的地方 我们都可以使用它们了
保存一下 现在我要做的是
我不会直接调用counter
因为它只是这个模块的一个属性或者函数
如果我要调用stuff的话
我就需要把module.exports对象赋予stuff变量
这个对象有这三个函数
所以我们现在不直接用counter
而是用stuff.counter
因为stuff就是module.exports
它会返回给我们这个对象
因此stuff.counter就是这个函数
也就是我们在这里写的东西stuff.counter
保存一下 并在node中运行这个文件
输入“node app” 可以看到它正常运行 输出了“数组中有3个元素”
非常棒 我们再来试一下另一个操作
我们尝试调用这个adder函数
同样的 我们输入“console.log”
但这次我们要写“stuff.adder”
我们要传入两个数 比如说5和3
保存 在node中运行
首先输出了“这个数组中有3个元素” 这是这条语句输出的
然后输出了“两数之和为11” 它正常运行 太棒了
我们也可以访问变量pi
只需要用module.exports.pi
我们为什么不把它传到这里呢
可以这样写“console.log(stuff.adder)”
我们要做的是加上pi 但是我们需要在stuff中引用这个变量
首先是stuff.pi 然后用它加上5
保存 再运行一次
输出了“两个数之和为8.142”
它就是3.142即pi加上5的结果
我们已经从这个模块中导出了许多东西 非常棒
我们可以这样做 或者也可以用一种稍微简单的方式
我们在这里引用了这些变量 给它们声明了变量名 并使其等于这些函数
然后我们把这些变量传递给modules.exports的各个属性
我们可以去掉中间步骤直接这样做
复制 粘贴到这
然后复制这些
把它粘贴到这
最后是这个 粘贴到这
现在我们在module.exports
仍然导出了所有这些东西
但是现在我们删掉了少量代码
保存 我们要确保它仍能在app.js正常运行
输出node app 可以看到一切正常 非常棒
这就是在模块中的另一种导出方式
现在我要再演示一种做法
我们仍然把它设置为变量 所以这里是var counter
这里是var adder
这里是var pi
我们仍可以把这些东西导出 可以这样写module.exports
并令它等于一个对象
这是对象的字面量表示
我们可以把属性和方法都放在这个对象里
所以我们可以这样写“counter:counter”
然后是“adder:adder”
最后是“pi:pi”
这种做法效果相同
我们也是把这些属性添加到module.exports
只不过是在这个字面量中完成了这个操作
保存一下 看它能否正常运行
输入node app 一切正常
终端中仍然打印出了这三条语句
这就是几种不同的模块模式
我们可以用它来导出数据或函数
这样在其他导入这个模块的地方 就可以使用它们了
如果你有任何问题都可以在下面留言
下次课见

发表评论

译制信息
视频概述

本节介绍了模块中的3种导出方式。

听录译者

收集自网络

翻译译者

[B]hugue

审核员

审核团1024

视频来源

https://www.youtube.com/watch?v=9UaZtgB5tQI

相关推荐