nodejs中export与module.export的区别

nodejs中export与module.export的区别

又来折腾nodejs了。

我写了一个简单的模块。提供一个计算器相加的功能,我的调用代码形如:

var  c  =  require( " ./calculator " );

console.log(c.add(
4 , 5 ));


reqiure完之后可以立即调用,这个模块calculator.js怎么写呢?

exports.add  =   function (a,b){
    
return  a + b;
}


给exports.add赋值解决了我的问题,但是我想如果我需要添加一个方法,这个就头疼了,比如:

var  Calculator = {
    add:
function   (a,b) {
        
return  a + b;
    }
};
exports  
=  Calculator;



考虑到Calculator里面不会只有一个方法,所以我直接用了exports= Calculator 。但是,很遗憾,不能,require得到的是一个{}对象,但是改成module.exports就可以了:

var  Calculator = {
    add:
function   (a,b) {
        
return  a + b;
    }
};
module.exports  
=  Calculator; // 变成module.exports


变成module.exports 之后达到我想要的效果了。

总结说就是如果需要直接给exports赋值的话,可以通过module.export来实现。

关于这里面的原理以及实现,可以参照文章:

module.exports还是exports?http://zihua.li/2012/03/use-module-exports-or-exports-in-node/

 



你可能感兴趣的:(nodejs中export与module.export的区别)