一、exports 与 module.exports
介绍:exports 和 module.exports是Node中导出模块的两种方式。Node为每个模块提供一个exports变量,指向module.exports。即var exports = module.exports;。所以exports和module.exports,在不改变他们指向的内存地址时,它们是等价的, 用法也是相似的。
区别:module.exports可直接赋值,但是不能对exports直接赋值。
产生区别的原因:require引入的对象本质上是module.exports。如果对exports直接赋值会导致exports 和 module.exports指向的不是同一块内存,此时exports的内容就会失效。
// 允许
module.exports = function () {
var a="Hello World"
return a;
}
// 错误写法
exports = function () {
var a="Hello World"
return a;
}
二、 export 与 export default
介绍: export 和 export default是ES6中引出的语法,用于导出模块中的变量,对象,函数,类。
区别:
-
export default在一个模块中只能有一个,当然也可以没有。export在一个模块中可以有多个; -
export default的对象、变量、函数、类,可以没有名字。export的必须有名字; -
export default对应的import和export有所区别。
使用
export default导出:
// util.js
// 导出
const common = {
'numid': '数字账号',
'userid': '用户账号',
}
export default common;
// 导入, 不带{}的导入
import common from './util.js'
export导出
// util.js
// 导出
const common = {
'numid': '数字账号',
'userid': '用户账号',
};
const mapInfo= {
'durian': '榴莲',
'mango': '芒果'
};
export { common, mapInfo };
//导入 ,带{}的导入
import {common, mapInfo } from './util.js';








网友评论