nodeJS是的模块流程:node
第一步:建立模块,如:student.jsui
第二步:导出模块,如:exports.add = function(){}对象
第三步:加载模块,如:var student = require('./student.js')it
第四步:使用模块,如:student.add('Tika')io
来作一个简单的学校的模块:console
一个学校的模块,由许多个班级组成,每一个班级都有一位老师,多名学生组成。function
准备工做:咱们就先新建一个名为 school 的文件夹。class
思路:咱们把学校分为不少个班级,每一个班级由一位老师和多名学生组成。咱们就把学生看做一个模块,老师看做一个模块,把班级也看做一个模块。咱们这个案例从学生往上走,固然也能够从学校往下走。require
第一步:咱们就先建立一个学生的模块,建立一个名为 student.js 的文件。module
在学生的模块里面,建一个方法:function add( student ){
console.log('Add Student:'+student);
}
建立了这个方法后,咱们还须要把这个add方法暴露出去。因而:
咱们经过一个exports对象来挂载合法的js对象。
exports.add = add;
第二步,咱们建立一个老师的模块。嗯。老师和学生的模块同理。因此就很少说了。建立一个名为 teacher.js 的文件。而后编写代码:
function add( teacher ){
console.log('Add Teacher:'+teacher);
}
exports.add = add;
第三步:既然有了老师和学生,那么咱们就应该有个班级来加载老师和学生,班级模块的建立,咱们新建一个名为 class.js 的文件。
咱们接下来须要先导入其它模块。
var student = require('./student');
var teacher = require('./teacher');
teacher.add('Teacher');
function add(teacherName,students){
teacher.add(teacherName);
students.forEach(function(item,inex){
student.add(item);
})
}
//把属性赋值给exports.add和赋值给module.exports是同样的,若是,你想让你的模块成为一个特别的对象类型就使用module.exports,若是是传统模块实例就用exports.add
exports.add = add;
//module.exports = add;
最后,建立一个名为 index.js 的启动模块,先调用班级模块。
var klass = require('./class');
在传入参数。
klass.add('Teacher',['熊大','王二','张三','李四']);
而后就能够在命令中执行了。
PS:若是,咱们想将模块暴露出去,则须要修改 index.js 启动模块的代码。
导入不变,接下来就进行改变。
exports.add = function(klasses){
var _klass = item;
var teacherName = item.teacherName;
var students = item.students;
klass.add('teacherName',students);
}