什么是module

module,模块的意思,nodejs中定义一个文件就是一个模块module.

新建一个文件tool.js

const {PI}=Math;exports.circle=(r)=>PI*r**2;console.log(module);
console.log(exports);

运行node tool.js


module,exports都是系统内置的对象,可以直接使用.打印出来看到module包含了id,exports等属性。
注意module下面的exports属性,值是一个对象

{circle:[FUNCTION]
}

再看打印出来的exports对象,{circle:[FUNCTION]};

说明exports对象其实是module对象的一个属性。

给module.exports添加方法

const {PI}=Math;exports.circle=(r)=>PI*r**2;
module.exports.getModuleFileName=function(){return module.filename;
}console.log(module);
console.log(exports);

结果:

此时module下面的exports与exports都多了一个getModuleFileName方法

require

require是nodejs内置对象,用于引入其他模块.
新建module.js

const tool=require('./tool');
console.log(tool);


打印tool,可以看出tool就是刚才我们在tool.js中分别给exports,module.exports添加的方法,

什么时候使用module.exports什么时候使用exports

回到刚才的tool.js,修改为

const {PI}=Math;exports.circle=(r)=>PI*r**2;
module.exports.getModuleFileName=function(){return module.filename;
}
module.exports=class Person{constructor(name){this.name=name;}
}console.log(module);
console.log(exports);

打印如下:

发现没有,module.exports的值变成了[FUNCION:PERSON] 也就是一个类.
而exports的值没有变.因为我们设置module.exports=一个类.所以,当module.exports重新定义的时候,module.exports 与exports 就是两个东西.

那么require进来的到底是谁?

回到module.js。

const tool=require('./tool');console.log(tool);

执行node module.js,打印如下:


看到没,最终require进来的是module.exports设置的东西.

node学习-module相关推荐

  1. node学习准备工作1 --- nvm下载、终端环境iterm2配置

    2019独角兽企业重金招聘Python工程师标准>>> 学无止境 最近在重新学习js基础,可是感觉别人在讨论框架啊什么的,就觉得对于js基础学习提不起劲,想起来node不就是用基础j ...

  2. Node.js module.exports与导出

    by lazlojuly 通过lazlojuly Node.js module.exports与导出 (Node.js module.exports vs. exports) 它们是什么,如何使用它们 ...

  3. 【Node学习】—Express框架的安装

    [Node学习]-Express框架的安装 安装的步骤 创建一个目录,然后进入此目录并将其作为当前工作目录. 通过 npm init 命令为你的应用创建一个 package.json 文件. 目录下安 ...

  4. 【Node学习】—Node.js中模块化开发的规范

    [Node学习]-Node.js中模块化开发的规范 Node.js 规定一个JavaScript就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到 模块化内部可以使用exports对象进行 ...

  5. 【Node学习】—运行node服务demo

    [Node学习]-运行node服务demo 创建node文件 名字不能是node.js 复制官网的案例 启动node服务:node 文件名字.js 浏览器来访问这个服务 官网版 改写版

  6. Node.js module.exports的用途是什么,如何使用它?

    Node.js module.exports的用途是什么,如何使用它? 我似乎找不到任何相关信息,但它似乎是Node.js的重要组成部分,正如我在源代码中经常看到的那样. 根据Node.js文档 : ...

  7. [Node.js] Module.Require机制研究

    最近开始用Node.js写Server端的脚本,由于原来一直在做的.Net中开发理念的影响,在设计上和代码实现上尽可能地进行封装. Node.js中跟.Net中对象最相近的就是Module(模块)了, ...

  8. node学习之Events和EventEmitter

    node学习之Events和EventEmitter对象 在node中,对于可以产生事件并能通过on方法绑定事件处理函数的对象来说,几乎都是通过继承EventEmitter来实现的,在本文中就是本人学 ...

  9. Node学习HTTP模块(HTTP 服务器与客户端)

    Node学习HTTP模块(HTTP 服务器与客户端) Node.js 标准库提供了 http 模块,其中封装了一个高效的 HTTP 服务器和一个简易的HTTP 客户端.http.Server 是一个基 ...

最新文章

  1. 把虚拟机装到内存里(打开PScs3只需要2秒)
  2. JAVA网络编程Socket常见问题 【长连接专题】
  3. 人脸识别的过程和算法
  4. 宝塔linux面板假设nextcloud,宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告...
  5. 230. Kth Smallest Element in a BST
  6. 深夜,我用python爬取了整个斗图网站,不服来斗
  7. EasyARM-iMX283A的Linux 开发环境构建
  8. 监管大屏系统_“警视”警务情指一体大屏可视化决策系统
  9. Struts2 + Hibernate + Spring 以及javaweb模块问题解决(1)
  10. 20210627:力扣第247周周赛(上)
  11. 朴素版prim算法求最小生成树
  12. Mybatis3.5.4官网下载
  13. 学点简单的Python之Python生成器
  14. python代码实现蜡笔小新
  15. VUE Router Error matched of undefined
  16. 流域水库水闸和泵站无人值守系统
  17. 多年编码经验血泪史总结,你若想学Python,必须看完这几点再做决定
  18. 拥有WiFi 6+的华为路由 AX 3 Pro 到底香不香
  19. NSSCTF Round#4 Web WP
  20. Springboot导出excel,合并单元格示例

热门文章

  1. EXT--Ext.get() 和 Ext.query() 组合使用实现最灵活的取元素方式
  2. ALSA学习笔记 (3)PCM
  3. OP320A 文本显器生产方案 另有源码原理图 兼容OP320A MD204L
  4. 手把手搭建一个redis集群
  5. 获取PDF文件的总页数
  6. 测试常用地区和各运营商网络是否通畅的网址
  7. 小小的日程管理功能,在职场派上大作用!
  8. wave2lip训练
  9. 基于FMS(Flash Media Service)的多人视频聊天
  10. Matlab2018安装成功后,打开出现licensing error:-8523解决方法