关于NodeJS中模块的引用及导出

关于NodeJS中模块的引用及导出

模块

  • 模块:独立的功能体
  • 模块分类:核心模块(内置模块)、自定义模块、第三方模块

自定义模块

  • 在在NodeJS,每一个文件都是一个模块, NodeJS自动为每个文件添加了构造函数,所有的代码被构造函数所包含:
(function(exports,require,module,__filename,__dirname){
                     //程序员自己的代码
})
  1. require(path) 用于引入一个模块,path代表(相对/绝对)路径,默认返回一个对象,同一级目录必须写路径./
  2. module: 指代当前的模块对象
    module.exports: 当前模块的导出对象,公开的属性和方法
  3. exports: 指代module.exports

正常情况下,模块中的变量值和函数为局部变量,不能被导出后使用,只会执行程序内部运行的结果,借助modele.exports可以将内部变量和方法抛出给其他文件使用

  1. __filename: 当前模块的绝对目录名称(前面下划线为两条)
  2. __dirname: 当前模块的绝对目录 (前面下划线为两条)

抛出模块时注意事项

  1. 对象的形式抛出(最常见)
//1.部分抛出
module.exports = {'key1' : 'value1', 'key2' : 'value2',...}
//2.抛出(推荐)
obj ={...} // 将需要抛出的对象整合到一个大的对象中整体抛出
module.exports = obj
  1. 单独抛出函数:
// 将oldFun赋值给新的newFun,新的方法名代替旧的方法名(可同名)
module.exports.newFun = oldFun
  1. 单纯抛出变量值:
// 变量同上
module.exports.newVal = oldVal

引入模块注意事项

以路径开始不以路径开始
文件模块require('./circle.js') 常用于引入自定义的模块,后缀名.js可省略require('url') 常用于引入官方提供的核心模块
目录模块require('./mulu')会先到mulu目录下寻找package.json(包)文件中main属性对应的文件名称,如果找不到再去找index.js件,如果连index.js都没有找到那么就会报错require('04_2')会到当前目录下的node_modules中寻找04_2目录,如果找不到,往上一级查找,直到找到指定顶级目录(盘符),如果最终找不到目录,那么报错,找到目录的话04_2就会去找目录中的package.json,后续用以路径开始的目录模块的查找

附加内容:

  1. npm init -y 初始化一个package.json文件,用于记录安装的包相关信息
  2. npm install 包名称 下载到目录名为node_modules的文件夹中
  3. npm install package.json 自动安装package.json中记录的包名称以及版本号
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

unravel space

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

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

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

打赏作者

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

抵扣说明:

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

余额充值