一、自定义模块介绍

程序员自己写的 Node.js 模块。

• Node.js 中每个单独的 .js 文件,就是一个模块

• 每个模块中都有一个 module 变量,其代表当前模块

• module 的 exports 属性是对外的接口

• 只有导出(module.exports)的属性或方法才能被外部调用

• 未导出的内容是模块私有,不能被外部访问

• 使用时,通过 require 引入

二、示例

通过如上图,我们看到我们写好的模块,导入后发现调用报错,报错原因说不能查找到模块circle原因:我们这样书写导入语句,代表的是导入的官方文档中的核心模块,而核心模块中没有该模块,所以会报错。

解决方法:将我们自定义的模块的路径写好,就可以解决该问题,那么文件的后缀名.js可以省略不写,但是路径一定要写对。

那么我们解决了刚刚的找不到模块的报错问题,接着又出现了一个问题,说circle模块中的perimeter方法不是一个函数,这个问题说明我们的这个方法没有进行导出,没有导出的话外界是访问不到的,无法调用模块里面的方法和属性,是私有的。
所以,解决方法: 将我们需要外界使用的方法进行导出,然后外界就可以调用该方法。

我们将方法导出,然后进行打印我们可以发现,我们的exports导出的对象当中多了2个我们导出的方法,说明我们导出成功啦!

然后我们就可以使用app.js测试文件进行调用执行啦

通过如上图,我们调用成功,没有报任何错误,说明我们成功啦。

circle.js文件代码

//circle模块
//当前模块的指代变量, module 表示当前模块
//console.log(module)
//定义一个圆周率常量
const PI = 3.14
//计算圆的周长
const perimeter = (r) => {return 2 * PI * r
}
//计算圆的面积
function area (r)  {//2次幂可以通过 r*r表示,也可以通过math对象的pow方法return PI * Math.pow(r,2)
}
//导出
module.exports = {perimeter,area
}

app.js文件代码

//导入模块
const circle = require('./circle')
//定义一个r半径常量,用于传输
const r = 10
console.log('周长',circle.perimeter(r));
console.log('面积',circle.area(r));

(15)Node.js 自定义模块相关推荐

  1. node.js中模块_在Node.js中需要模块:您需要知道的一切

    node.js中模块 by Samer Buna 通过Samer Buna 在Node.js中需要模块:您需要知道的一切 (Requiring modules in Node.js: Everythi ...

  2. Node.js Net 模块

    Node.js 工具模块 Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: var net = require(&qu ...

  3. Node.js OS 模块

    Node.js 工具模块 Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 ...

  4. Node.js:模块查找,引用及缓存机制

    1. Node.js的模块载入方式与机制 Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的 ...

  5. 38..Node.js工具模块---底层的网络通信--Net模块

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/ ...

  6. JavaScript之后端Web服务器开发Node.JS基本模块学习篇

    JavaScript之后端Web服务器开发Node.JS基本模块学习篇 基本模块 fs文件系统模块 stream支持流模块 http crypto加密模块 基本模块 因为Node.js是运行在服务区端 ...

  7. 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session

    1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...

  8. Node.js中模块加载机制

    Node.js中模块加载机制 模块查找规则-当模块拥有路径但没有后缀时 1. require方法根据模块路径查找模块,如果是完整路径,直接引入模块. 2. 如果模块后缀省略,先找同名JS文件再找同名J ...

  9. Node.js Web 模块

    Node.js Web 模块 什么是 Web 服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务.它只需支持HTTP协议. ...

最新文章

  1. 什么是 WMI?From MSDN
  2. python的算术运算符不包括_没有算术运算符的A + B,Python与C ++
  3. python - os模块
  4. java 代码运行速度慢_C代码的运行速度总是比Java快,对吧? 错误!
  5. 基本图形怎么改字体_PPT做得慢怎么办?掌握这6个技巧,你也能快速做出精美的PPT...
  6. python数据的格式输出_python
  7. linux读取内存文件,linux – 使用模块读取内核内存
  8. Leetcode重点250题
  9. pytorch tensor查找0_Pytorch tensor(0): Tensor Introduction
  10. SQL 2008镜像配置
  11. sublime配置markdown
  12. python俄罗斯方块编码简单_python俄罗斯方块教程-100行代码
  13. l298n电机哪一端为正_L298N使用说明介绍
  14. 基于DCT的信息隐藏
  15. python bytes
  16. 【LittlevGL】模拟器
  17. 淘宝装修前需要了解的css小技巧
  18. iPad半年使用心得
  19. 书桌台灯怎么选?分享儿童卧室灯品牌
  20. 管理业务流程图_业务流程管理采用方案

热门文章

  1. HTTP权威指南记录 ---- HTTP报文
  2. ORACLE查询原理
  3. 只要你上网,哪能不中毒?
  4. VForum07之四:布道中国 解读本地化策略
  5. spring data elasticsearch 对应 elasticsearch 版本
  6. Python 读入Excel表时如何判空NaN
  7. mongodb 持久化 mysql_最详细的python爬虫指南(四):持久化操作(mongoDB、mysql)...
  8. SpringBoot2.0.3 + SpringSecurity5.0.6 + vue 前后端分离认证授权
  9. java开发中常用到小方法
  10. Mapxtreme Java 地图缩放,平移操作的原理和实现