node中的module.exports、exports VS es6中的import、export

本文详细介绍了Node.js中的module.exports与require机制,并对比了ES6中的export和import用法,包括命名导出和默认导出的方式及其使用场景。

我们知道node中用来进行模块导入导出的是module.exports和require, 而es6中,用来进行模块导入导出的是import和export,这个时候就会有个疑问,为啥一个是exports,一个是export呢,两者有何区别呢?

1.node-module.export和require

暂时摘抄某个网站的下列知识点,其余的再补充

module.exports 初始值为一个空对象 {}

exports 是指向的 module.exports 的引用

require() 返回的是 module.exports 而不是 exports

2.es6-export和import

一般来说,我们会导出一个或者多个变量,变量可能是数组、对象、函数等。这个时候有2种写法,一种是利用export,另一种是export default

export的情况(命名导出)

function getA () {
    console.log("getA");
}
function getB () {
    console.log("getB");
}
export { getA, getB }

一个文件里可以有多个export,上述代码等价于以下代码

export getA () {
    console.log('getA')
}
export getB () {
    console.log('getB')
}

用export时,这个对象的名称已经确定(getA、getB),在用import引入的时候必须用(getA、getB)这些名称,同时,名称前后要加{}。上述2种导出方式可以用下述方式导入

import { getA, getB } from './testExport.js';

当然你可以在导出变量的时候,给它起一个其他的名字,例如

var a = function(){
    console.log("ddd");
};
export {a as b};

这个时候相应的引入方式为:

import {b} from './testExport.js';

有一点注意的是,如果仍旧利用

import {a} from './testExport.js';

的形式是失效的,因为这个时候a模块已经叫做b了,只有b是可用的。

export default 的情况(默认导出)

如果你在一个文件中,只是想导出一个模块的化,那么利用export default比较方便些,这样就省去了繁琐的大括号{}。一个文件里只能有一个export default

例如:

export default {
    getA () {
        console.log('getA')
    },
    getB () {
        console.log('getB')
    }
}

default的意思是默认导出一个无命名的模块,这样的话,在引入模块的时候可以对这个模块随意命名。

例如:

import test from './testExport.js';
test.getA()
test.getB()

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值