简单的Node.js模块demo
创建模块 teacher.js
导出模块 exports.add = function() {}
加载模块 var teacher = require('./teacher.js')
使用模块 teacher.add('Scott')
创建一个school的文件夹目录
在school目录里面创建一个student.js学生模块
function add(student) {
console.log('Add student:' + student)
}
// 想被其他模块引用,必须暴露出去,我们这里使用exports
exports.add = add
再在school目录下创建一个teacher.js教师模块
function add(teacher) {
console.log('Add Teacher:' + teacher)
}
// 想被其他模块引用,必须暴露出去,使用exports
exports.add = add
创建一个klass.js班级模块,引入学生和教师模块
- 将属性赋与module.exports的结果和将属性赋值给exports.是一样的
- 如果你希望你的模块成为一个传统的模块实例,那么请使用exports.
- 如果希望你的模块成为一个特别的对象类型,那么请使用mudule.exports
- mudule.exports = add
- mudule.exports是真实存在的东西
- exports. 是mudule.exports的辅助方法,这个模块最终返回mudule.exports
- 给中间者
- mudule.exports挂在属性和方法,然后再把属性赋值给mudule.exports
- 如果mudule.exports已经有了属性,那exports就会被忽略
- 我们推荐使用exports. 这种方式
- 除非你想把你的模块的对象类型从传统的模块实例修改为其他的
// 使用require来引入模块
var student = require('./student')
var teacher = require('./teacher')
// 添加老师
teacher.add('Scott')
function add (teacherName, students) {
teacher.add(teacherName)
students.forEach(function(item, index) {
student.add(item)
})
}
// 如果你希望你的模块成为一个传统的模块实例,那么请使用exports.
exports.add = add
// mudule.exports = add
新建启动文件, 也就是入口文件index.js文件
// 引入班级的模块
var klass = require('./klass')
// 将学校暴露出去
exports.add = function(klasses) {
klasses.forEach(function(item, index) {
var _klass = item
var teacherName = item.teacherName
var students = item.students
klass.add(teacherName, students)
})
}
在node命令行运行