Node JS模块
所谓的Node JS模块其实就是指Node JS package,即nodejs包。
一 什么是NodeJS模块?
在说这个问题之前,我们有必要提出一个概念,即模块规范。
现阶段JavaScript领域大体有三种比较流行的模块规范,一种是AMD规范,一种是CMD规范,
还有一种就是CommonJS规范。前两种专注于客户端,后者是服务端的规范。
CommonJS规范说,一个单独的文件其实就是一个模块。在NodeJS红,一个模块可以是一个
单独的文件,也可以是一个包含多个文件(子模块)的目录。。CommonJS规范还要求模块都采用
统一的格式 exports或者module.exports导出模块接口。
二、如何导出NodeJS模块?
首先,我们来回顾一下基础。
在Node中,require一个文件实际上是在require这个文件定义的模块。所有的模块都拥有一个
对隐式module对象的引用,当你调用require时实际上返回的是没module.exports属性。对于
module.exports的引用同样也能写成exports。
在每一个模块的第一行都隐式的包含了一行下面的代码:
注意:如果你想要导出一个函数,你需要将这个函数赋值给module.exports。将一个函数赋值给exports将会为
exports引用重新赋值,但是module.exports依然会指向原始的空对象。
因此我们可以像这样来定义一个function.js模块来导出一个对象:
然而在另一个文件中require这个模块:
require的一个重要行为就是它缓存了module.exports的值并且在未来再次调用require时返回同样的值。
以上就是全部内容了!!!