(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));

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泽哥ins

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值