模块化
编写稍大一点的程序时一般都会将代码模块化。在node.js中每一个文件就是一个模块,而文件路劲就是我们的模块名;
怎么使用模块?
在编写每个模块时,都有三个(require(记载依赖模块)/exports(暴露接口)/module(存档模块ID))预先定义的变量可供使用。
require require(path相对路径和绝对路径)
require 函数 用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出的对象;
注意:模块名中的 .js 扩展名可以省略,内置模块没有后缀名;
exports
exports 对象 是当前模块的导出对象,用于导出模块共有的方法和属性。
其他模块就可通过 require ( ) 函数 使用当前模块时得到的就是当前模块的exports对象。
npm 包管理工具
模块:每一个js文件 ---》 js模块
包:package --》由多个子模块组成的大模块 成为包 ,并把多个
我们通过npm 下载和使用 包 下载jQuery包 npm install
exports = module.exports = {};
- exports 是 module.exports 的一个引用
- module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {}
- require 引用模块后,返回的是 module.exports 而不是 exports!!!!!
- exports.xxx 相当于在导出对象上挂属性,该属性对调用模块直接可见
- exports = 相当于给 exports 对象重新赋值,调用模块不能访问 exports 对象及其属性
- 如果此模块是一个类,就应该直接赋值 module.exports,这样调用者就是一个类构造器,可以直接 new 实例。