nodeJS是的模块流程:
第一步:创建模块,如:student.js
第二步:导出模块,如:exports.add = function(){}
第三步:加载模块,如:var student = require('./student.js')
第四步:使用模块,如:student.add('Tika')
来做一个简单的学校的模块:
一个学校的模块,由许多个班级组成,每个班级都有一位老师,多名学生组成。
准备工作:我们就先新建一个名为 school 的文件夹。
思路:我们把学校分为很多个班级,每个班级由一位老师和多名学生组成。我们就把学生看作一个模块,老师看作一个模块,把班级也看作一个模块。我们这个案例从学生往上走,当然也可以从学校往下走。
第一步:我们就先创建一个学生的模块,创建一个名为 student.js 的文件。
在学生的模块里面,建一个方法: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);
}