node的export和require的使用

Node的exports和require的使用

 

方法1:使用exports.xx来导出

定义one.js

//node的导出用exports.xx和module.exports,导出用require

//导出方法1 exports.xx

var a = 1;

var b = [1,2,3];

var c = {name:'小明'};

var f1=function(){

    return '这是f1';

}

exports.a=a;

exports.b=b;

exports.c=c;

exports.f1=f1;

定义main.js

//导入one.js

var one = require('./one');

console.log(one.a);

console.log(one.b);

console.log(one.c);

console.log(one.f1);

在终端执行命令号node main.js,结果如下:

 

方法2:使用module.exports来导出

定义one.js

//node的导出用exports.xxmodule.exports,导出用require

//导出方法2 module.exports

var a = 1;

var b = [1,2,3];

var c = {name:'小明'};

var f1=function(){

    return '这是f1';

};

module.exports={

    a,

    b,

    c,

    f1

}

定义main.js

//导入one.js

var one = require('./one');

console.log(one.a);

console.log(one.b);

console.log(one.c);

console.log(one.f1);

 

在终端执行命令号node main.js,结果如下:

由此可见,

共同点:Module.exports和exports.xx都可以导出单个对象。

区别:module.exports适合用于导出多个对象,exports.xx一次只能导出一个对象。一个js里面可多次使用exports.xx,一个js里面只有一个module.exports生效(即只能用一个module.exports).

定义one.js

//node的导出用exports.xxmodule.exports,导出用require

//导出方法2 module.exports

var a = 1;

var b = [1,2,3];

module.exports = {a}

定义main.js

//导入one.js

var one = require('./one');

console.log(one.a);

在终端执行命令号node main.js,结果如下:

修改one.js,多次使用module.exports,会发现,最后一个module.exports会覆盖之前的module.exports.

One.js:

//node的导出用exports.xxmodule.exports,导出用require

//导出方法2 module.exports

var a = 1;

var b = [1,2,3];

module.exports = {a}

module.exports = {b}

同样,定义main.js

//导入one.js

var one = require('./one');

console.log(one.a);

console.log(one.b);

执行node main.js,效果图:

可见,一个js里面只有一个module.exports生效。

在导入的时候是否需要使用{},这个问题可以看情况而定,记住,导入的是一个对象。

定义one.js

var a = 1;

var b = [1,2,3];

var f1 = function(){

    return "这是f1"

}

module.exports={

    a,

    b,

    f1

}

定义main.js

//导入one.js

var {a,b,f1} = require('./one');

console.log(a);

console.log(b);

console.log(f1);

执行node main.js,结果如下图1:

修改main.js

//导入one.js

var one = require('./one');

console.log(one.a);

console.log(one.b);

console.log(one.f1);

结果与图1一样,即在导入的时候看情况决定是否需要用{}。

 

注意:export和import 是es6的导入导出语法,主要用于导入导出模块。

export直接+变量名的时候,能导出多个命名模块。需要使用{},export对应的是import {name as name1} from ‘one’。

export default{},导出的是一个默认模块。对应的是import a1 from ‘one’,直接import +别名

一个js里面可有多个export,一个js里面只能有一个export default

//export用法

export var a = 1;

//以上相当于

var a = 1;

export {a};

//对应的导入是 import {a as a1} from 'one'

 

//export default用法

export default {}

//对应的导入是 import a1 from 'one'

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值