Node实现CommonJS规范
-因此node可以使用模块化的方式组织代码结构
简单命令行加减运算
-代码
命令行执行
V8对es6的支持
-直接支持:const、模版字符串等。
-严格模式支持:let等
-根本不支持
模块化代码结构
-Node采用的模块化结构是按照 CommonsJS规范
-模块与文件是一一对应关系,即加载一个模块,实际上就是加载对应的一个模块系统。
将上述代码进行模块化
-将计算逻辑提取
-修改代码,使用模块化
-node里面可以使用模块化
-node模块化使用commonjs,不用define
-es6自动属性
模块的分类
-文件模块
--就是我们自己写的功能块文件
-核心模块
--node平台自带的一套基本的功能模块>node平台的API
-第三方模块
--社区或第三方个人开发的功能模块,可以直接拿回来用
模块化开发的流程
-创建模块>new demo.js
-导出成员>module.exports = {}
-载入模块>car demo = require()
-使用模块>demo.method()
模块内全局对象
-我们在之后的文件操作中必须使用绝对路径
-__dirname
--用于获取当前文件所在目录的完整路径
--在REPL环境无效
-__filename
--用来获取当前文件的完整路径
--在REPL环境同样无效
-dirname、filename因为在REPL环境中无效,因此认为其是伪全局对象
模块内部私有空间
-不导出,外界就不能访问,不会污染全局
模块的定义
-一个新的JSwe文件就是一个模块
-一个合格的模块应该是有导出成员的,否则模块就失去了定义的价值
-模块内部是一个独立(封闭)的作用域>模块与模块之间不会冲突
-模块之间必须通过导出或导入的方式协同
-导出方式
--exports.name = value;
--module.exprots = {};