nodejs前辈好,我想用require来引入自定义的模块,请进来看一下感谢。
发布于 11 年前 作者 gaowenzhen 14904 次浏览 最后一次编辑是 8 年前

我想请教如下问题

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; 这三种写法的效果是一样的

回到顶部