node基础再现--module.exports 和exports

  实际上,最最基础的方法,最最原始的方法是module.exports,至于exports,是为了方便书写才出来的,应该说,module.exports 包含exports,所工做的范围更加的普遍!ui

module的用法:(能够暴露任何部位,任何形式的值)this

(后来坑之处)require()中的是文件名,而不是什么方法,因此,就简单理解了;
引入的文件当中,导出了什么,就有什么方法,spa

//此文件为modle.js

//至关于类,类名和文件名相同最好!

var modle = { 
    var a = function(){};
    var b = function(){};
}
//module one暴露全部的方法,此时,没法再暴露其余方法
module.exports = modle;
//module two 暴露些许方法
module.exports.output = modle.a;
//新开辟单元暴露方法
module.exports.fuck = function(){console.log('this is newwe!')}

倘若我引入了modle.js以下code

var modle = require('./modle');
注意,上面require进来的是module.exports这个对象!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//如果module.exports = modle,即:这个文件仅仅暴露了对象modle,引入后赋给modle,使用以下:
modle.a();modle.b();
//如果module.exports.output = modle;那么是将modle对象赋给了module.exports的output,而后require进来了module.exports对象,使用以下:
modle.modle.a() modle.modle.b()
//至于exports,只可以exports.什么什么,也就是只能给他建立对象,而后,暴露,可是不能exports=遵循了这点之后实际和module.exports.hello = function(){}同样

 

至于exports:对象

它是有上面的引升来的,等于上面那个,因此,它不能在赋值了,只能新开辟值,只能新开辟值,只能新开辟值,只能新开辟值(重要)blog

exports.hello = function(){console.log('hello');}

 

注:若是实在是分不清二者的区别,那么,放弃exports,仅仅使用module.exports足够了!io

相关文章
相关标签/搜索