nodejs笔记(2)--模块

模块


nodejs官方提供很多核心模块,具有最高的加载优先级。

自定义文件模块可以是.js文件,.json文件,c/c++文件(.node)。

用require(“url”)加载:

“/…” 绝对路径
“./…” 同级文件 相对路径
“../…” 相对路径

Nodejs尝试加载的优先级 js文件 > json文件 > node文件

nodejs中require同一模块的时候不会重复加载。第一次加载的时候就会缓存模块。第二次加载是直接从缓存中读取模块继续使用的。

exports 和 module.exports 的区别:
* module.exports 初始值为一个空对象 {}
* exports 是指向的 module.exports 的引用
* require() 返回的是 module.exports 而不是 exports

module就是这个模块本身。module.exports指向一个空对象,exports也指向这个空对象,这是他们唯一的联系,exports所做的事情是收集属性,如果module.exports当前没有任何属性的话,exports会把这些属性赋予module.exports。如果module.exports已经存在一些属性的话,那么exports中所用的东西都会被忽略。

  • exports.xxx,相当于在导出对象上挂属性,该属性对调用模块直接可见
  • exports =相当于给exports对象重新赋值,调用模块不能访问exports对象及其属性,切断了与module.exports的联系,此时require模块之后也是无法调用的。
  • 如果此模块是一个类,就应该直接赋值module.exports,这样调用者就是一个类构造器,可以直接new实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值