CNode

nodejs前辈好,我想用require来引入自定义的模块,请进来看一下感谢。

Ggaowenzhen发布于13 年前最后回复13 年前6 回复15442 浏览0 收藏

我想请教如下问题

var _db={}

module.exports=_db;

exports = module.exports =_db;


请问上面两种写法有什么不一样,请大师请解答一下感谢。

查看回复

回复 (6)

F
firstgeniusboy#1·13 年前
引用 gaowenzhen感谢,明白了一点,想成根,命名空间一样对吗? 如module.exports = db;写法是不是,在module.exports增加了一个 db方法 如下写法 exports = modul...

第一你要记住一定要让他们保持一致。也就是不要同时分别定义他们两个。 第二,假如要选择的话。输出一个对象的话首选module。exports 。输出许多函数或是变量的话首选exports。 很抽象。其实除了你的程序有BUG否则这种特性一般没人在意。

G
guoxy#2·13 年前

理论上来说, “module”变量对应与模块的全局变量的根作用域, 所以 module.exports = _db; exports = _db; exports = module.exports =_db; 这三种写法的效果是一样的

F
firstgeniusboy#4·13 年前

简单的说exports 是module.exports 的别名。分别定义的话.module.exports会覆盖exports

L
leapon#5·13 年前

module.exports 是根。可以不用 exports

G
gaowenzhen#6·13 年前

感谢,明白了一点,想成根,命名空间一样对吗?

如module.exports =_db;写法是不是,在module.exports增加了一个_db方法

如下写法

exports = module.exports =_db;//是不是把原有的_db覆盖了保证是最新的,exports中只有一个新的_db呢?

参与回复
登录后即可参与回复。登录