NodeJS中的module.exports、require和ES6中的export、import区别
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。 nodejs模块中exports和module.exports的区别 CommonJS模块规范 对于node执行的每一个js文件,都会自动创建一个module模块对象,如同一个封闭的函数一样,把一个函数封闭起来,外部怎样才能去引用呢?必然需要对完暴露出来一个“门”,也就是暴露出来一个接口。。 exports 和 module.exports 二者的关系: 1.module.exports才是真正的接口,exports只不过是它的一个辅助工具, 最终返回给调用的是module.exports而不是exports。module.exports 初始值为一个空对象 {},而exports为指向module.exports 的引用 2. 在require() 的时候,返回的是 module.exports 而不是 exports,因此,直接赋值exports常常会出现错误,而赋值为module.exports常常是解决这一问题的折中办法 3.所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提