nodejs前辈好,我想用require来引入自定义的模块,请进来看一下感谢。
我想请教如下问题
var _db={}
module.exports=_db;
exports = module.exports =_db;
请问上面两种写法有什么不一样,请大师请解答一下感谢。
6 回复
简单的说exports 是module.exports 的别名。分别定义的话.module.exports会覆盖exports
module.exports 是根。可以不用 exports
感谢,明白了一点,想成根,命名空间一样对吗?
如module.exports =_db;写法是不是,在module.exports增加了一个_db方法
如下写法
exports = module.exports =_db;//是不是把原有的_db覆盖了保证是最新的,exports中只有一个新的_db呢?
第一你要记住一定要让他们保持一致。也就是不要同时分别定义他们两个。 第二,假如要选择的话。输出一个对象的话首选module。exports 。输出许多函数或是变量的话首选exports。 很抽象。其实除了你的程序有BUG否则这种特性一般没人在意。
理论上来说, “module”变量对应与模块的全局变量的根作用域, 所以 module.exports = _db; exports = _db; exports = module.exports =_db; 这三种写法的效果是一样的