JS exports的用法

文章介绍了在Node.js中如何使用exports和module.exports导出模块中的变量和函数,使得它们可以在其他模块中被调用。通过示例展示了如何正确导出和引入模块,强调了不能对exports重新赋值以避免断开与module.exports的关联。
摘要由CSDN通过智能技术生成

Node.js 模块的导出

在 Node.js 中,每个文件都被视为一个模块,模块内部的变量和函数默认都是私有的,而需要被其他模块调用的变量和函数则需要用 exports 或 module.exports 进行导出。

exports 是 module.exports 的一个引用,即 exports = module.exports,因此它们的作用相同。使用 exports 可以向外部模块暴露变量、函数和对象等。

示例:

// person.js
var name = 'Tom';
var age = 18;

exports.getName = function() {
    return name;
}

exports.getAge = function() {
    return age;
}

在这个例子中,通过 exports 对象向外部模块暴露了 getName 和 getAge 两个函数。其他模块可以通过 require 方法引入该模块,然后使用 getName 和 getAge 方法来获取 name 和 age 的值。

// main.js
var person = require('./person');

console.log(person.getName()); // 'Tom'
console.log(person.getAge());  // 18

需要注意的是,当使用 exports 导出一个对象时,不能使用 exports = {} 的方式重新赋值,否则将会断开 exports 和 module.exports 的关联,导致无法正确导出模块。正确的方式是直接向 exports 对象添加属性和方法。

示例:

// person.js
exports.obj = {
    name: 'Tom',
    age: 18
}

exports.sayHello = function() {
    console.log('Hello');
}

在这个例子中,通过 exports 对象向外部模块暴露了一个对象和一个函数。其他模块可以通过 require 方法引入该模块,然后使用 obj 对象和 sayHello 方法来访问该模块导出的内容。

// main.js
var person = require('./person');

console.log([person.obj.name](<http://person.obj.name/>));    // 'Tom'
console.log(person.obj.age);     // 18
person.sayHello();               // 'Hello'

总之,exports 是 Node.js 中用于导出变量、函数和对象等的对象,它可以让模块内部的私有变量和函数暴露给其他模块使用,从而实现模块化的开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值