02慕课网《进击Node.js基础(一)》——CommonJs标准
是一套规范管理模块
每个js 为一个模块,多个模块作为一个包
node.js和Couchdb是对其的实现;
不同于jQuery
模块:定义、标识、引用(地址/模块名称)
模块类型:
核心模块http fs path
文件模块var util=require(‘./util.js’)
第三方模块npm var promise=require(‘bluebird’)
模块的流程:
创建模块 teacher.js function foo(){}
导出模块 exports.add=function(){} foo
加载模块 另一个js文件var teacher=require(‘./teacher.js’)
使用模块 teacher.add(‘wangcf’)
源码:
student.js
function add(student){ console.log('Add Student: ' + student) } //通过expots对象暴露方法 exports.add=add
teacher.js
function add(teacher){ console.log('Add Teacher: ' + teacher) } //通过expots对象暴露方法 exports.add=add
klass.js
//require引用模块 var student = require('./student') var teacher = require('./teacher') function add(teacherName,students){ teacher.add(teacherName) students.forEach(function(item,index){ student.add(item); }) } ///两者作用相同 //传统的模块实例,是module.exports的辅助方法 exports.add = add //有这个会忽略exports特别的对象类型,真实存在的东西 //module.exports = add
index.js
var klass = require('./klass'); klass.add("教师",['学生1','学生2']) exports.add = function(klasses){ klasses.forEach(function(item,index){ var _klass = item; var teacherName = item.teacherName; var students = item.students; klass.add(teacherName,students) }) }