nodejs實踐--export和module.export的區別

(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相當於把函數或變量掛載在對象上,在另一個文件中應用後,通過調用對象屬性和方法進行使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章