Node.js —— 模块系统

一、使用Node编写应用程序主要是使用:
1、EcmaScript

2、核心模块:文件操作fs、http服务的http等

3、第三方模块: art-template等
(1)必须通过npm下载才可以使用

4、自定义模块:其实就是自己创建的文件


二、模块化的概念:如果一个平台有文件作用域、通信规则,就是符合模块化(加载require、导出)


三、CommonJS模块规范
1、模块作用域

2、使用 require()方法 加载模块
(1)语法:var 自定义变量名 = require(‘模块’) ;
    - 注意这里的‘模块’分为三种: 核心模块、第三方模块、自定义模块
(2)作用
    <1>执行被加载模块中的代码
    <2>得到被加载模块中的exports对象

3、使用 exports接口对象用来 导出模块中的成员
    Node中是模块作用域,默认文件中所有的成员只在当前文件模块有效
(1)导出多个成员(必须在对象中): 直接使用exports起到的是一个挂载的作用,也就是说,要通过“ 对象.成员”来 访问成员
(2)导出单个成员(拿到的就是函数、字符串、数字、数组等):如果一个模块需要 直接导出某个成员,而不是挂载到exports对象上,就要使用 module.exports = 成员
    <1>后者会覆盖前者
    <2>这个方式也可以用来导出多个成员:
        module.exports = {}
    <3>直接给exports赋值是不管用的:因为 最后return的是module.exports,而不是exports,exports的修改是不影响module.exports的
        - 给exports重新赋值会断开和module.exports之间的引用
        - 给 module.exports重新赋值也会断开
(3)如果实在分不清exports和module.exports,可以只使用module.exports

4、原理解析:在Node中,每个模块内部都有一个自己的module对象,该对象中又有一个成员exports对象,对外导出成员时,是把导出的成员挂载到module.exports中。而且Node提供了一个专门的变量exports,等于module.exports,所以导出成员的时候可以直接把成员挂载到exports上。

等价于:









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值