(15)Node.js 自定义模块
一、自定义模块介绍
程序员自己写的 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 自定义模块相关推荐
- node.js中模块_在Node.js中需要模块:您需要知道的一切
node.js中模块 by Samer Buna 通过Samer Buna 在Node.js中需要模块:您需要知道的一切 (Requiring modules in Node.js: Everythi ...
- Node.js Net 模块
Node.js 工具模块 Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: var net = require(&qu ...
- Node.js OS 模块
Node.js 工具模块 Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 ...
- Node.js:模块查找,引用及缓存机制
1. Node.js的模块载入方式与机制 Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的 ...
- 38..Node.js工具模块---底层的网络通信--Net模块
转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/ ...
- JavaScript之后端Web服务器开发Node.JS基本模块学习篇
JavaScript之后端Web服务器开发Node.JS基本模块学习篇 基本模块 fs文件系统模块 stream支持流模块 http crypto加密模块 基本模块 因为Node.js是运行在服务区端 ...
- 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session
1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...
- Node.js中模块加载机制
Node.js中模块加载机制 模块查找规则-当模块拥有路径但没有后缀时 1. require方法根据模块路径查找模块,如果是完整路径,直接引入模块. 2. 如果模块后缀省略,先找同名JS文件再找同名J ...
- Node.js Web 模块
Node.js Web 模块 什么是 Web 服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务.它只需支持HTTP协议. ...
最新文章
- 什么是 WMI?From MSDN
- python的算术运算符不包括_没有算术运算符的A + B,Python与C ++
- python - os模块
- java 代码运行速度慢_C代码的运行速度总是比Java快,对吧? 错误!
- 基本图形怎么改字体_PPT做得慢怎么办?掌握这6个技巧,你也能快速做出精美的PPT...
- python数据的格式输出_python
- linux读取内存文件,linux – 使用模块读取内核内存
- Leetcode重点250题
- pytorch tensor查找0_Pytorch tensor(0): Tensor Introduction
- SQL 2008镜像配置
- sublime配置markdown
- python俄罗斯方块编码简单_python俄罗斯方块教程-100行代码
- l298n电机哪一端为正_L298N使用说明介绍
- 基于DCT的信息隐藏
- python bytes
- 【LittlevGL】模拟器
- 淘宝装修前需要了解的css小技巧
- iPad半年使用心得
- 书桌台灯怎么选?分享儿童卧室灯品牌
- 管理业务流程图_业务流程管理采用方案
热门文章
- HTTP权威指南记录 ---- HTTP报文
- ORACLE查询原理
- 只要你上网,哪能不中毒?
- VForum07之四:布道中国 解读本地化策略
- spring data elasticsearch 对应 elasticsearch 版本
- Python 读入Excel表时如何判空NaN
- mongodb 持久化 mysql_最详细的python爬虫指南(四):持久化操作(mongoDB、mysql)...
- SpringBoot2.0.3 + SpringSecurity5.0.6 + vue 前后端分离认证授权
- java开发中常用到小方法
- Mapxtreme Java 地图缩放,平移操作的原理和实现