(1)将函数直接导出成模块
模块文件:./my_modules/m.js
function fn1(){
console.log('我是fn1')
}
module.exports=fn1;
index.js
var foo=require('./my_modules/m')
foo();//我是fn1
(2)如果模块文件中有两个函数,第二个会覆盖第一个
模块文件:./my_modules/m.js
function fn1(){
console.log('我是fn1')
}
function fn2(){
console.log('我是fn2')
}
module.exports=fn1;
module.exports=fn2;
index.js
var foo=require('./my_modules/m')
foo();//我是fn2
(3)如何导出模块中的所有函数
模块文件:./my_modules/m.js
function fn1(){
console.log('我是fn1')
}
function fn2(){
console.log('我是fn2')
}
module.exports.fn1=fn1;
module.exports.fn2=fn2;
index.js
var foo=require('./my_modules/m')
foo.fn1();//我是fn1
foo.fn2();//我是fn2
(4)exports是module.exports的一个引用,exports=module.exports={}
exports.xxx 相当于在导出对象上挂属性,该属性对调用模块直接可见
模块文件:./my_modules/m.js
exports.fn1=function(){
console.log('我是fn1')
}
exports.fn2=function(){
console.log('我是fn2')
index.js
var foo=require('./my_modules/m')
foo.fn1();//我是fn1
foo.fn2();//我是fn2
小结:
1、module.exports=xxx,相当于导出某个函数,在另一个文件中引用后可直接调用
2、exports.xxx和module.exports.xxx相当于把函数或变量挂载在对象上,在另一个文件中应用后,通过调用对象属性和方法进行使用