当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js module.exports和exports的区别用法及代码示例


模块是一个表示当前模块的纯 JavaScript 对象。它对于每个模块来说都是本地的,也是私有的。它有出口属性是一个普通的 JavaScript 变量,设置为模块.导出。在文件末尾,Node.js 返回module.exports到所需的函数。

关于模块.导出:

当我们想要将单个类/变量/函数从一个模块导出到另一个模块时,我们使用module.exports.

例子:创建两个文件calculator.jsoperation.js并从中导出算术类calculator.jsoperation.js使用module.exports方法。在这里,我们创建了一个 Arithmetic 类并使用导出整个类module.exports.

文件名:calculator.js

Javascript


class Arithmetic {
    constructor(a, b) {
        this.a = a;
        this.b = b;
    }
    add() {
        return this.a + this.b;
    }
    subtract() {
        return this.a - this.b;
    }
    multiply() {
        return this.a * this.b;
    }
    divide() {
        if (this.b != 0) {
            return this.a / this.b;
        }
        return "divided by zero !!!!";
    }
};
module.exports = Arithmetic;

文件名:operation.js

Javascript


const Arithmetic = require('./calculator.js');
const op = new Arithmetic(100,40);
console.log(`Addition -> ${op.add()}`);
console.log(`subtraction -> ${op.subtract()}`);
console.log(`Multiplication -> ${op.multiply()}`);
console.log(`Division -> ${op.divide()}`);

使用以下命令运行operation.js 文件:

node operation.js

输出:

使用 module.exports

关于出口:

当我们想要将多个变量/函数从一个模块导出到另一个模块时,我们使用导出。

例子:创建两个文件calculator.jsoperation.js并从中导出多个函数calculator.js文件。

文件名:calculator.js

Javascript


exports.add = (a, b) => a + b;
exports.subtract = (a, b) => a - b;
exports.multiply = (a, b) => a * b;
exports.divide = (a, b) => {
    if (b != 0) {
        return a / b;
    }
    return `Divided by zero !!!`;
}

文件名:operation.js

Javascript


const Arithmetic = require('./calculator.js');
console.log(`Addition -> ${Arithmetic.add(100,40)}`);
console.log(`subtraction -> ${Arithmetic.subtract(100,40)}`);
console.log(`Multiplication -> ${Arithmetic.multiply(100,40)}`);
console.log(`Division -> ${Arithmetic.divide(100,40)}`);

使用以下命令运行operation.js 文件:

node operation.js

输出:

使用导出

module.exports 和导出之间的主要区别:

S.no

Module.exports

Exports

1

当我们想要将单个类/变量/函数从一个模块导出到另一个模块时,我们使用module.exports方式。 当我们想要将多个变量/函数从一个模块导出到另一个模块时,我们使用出口方式。

2.

它是从 require() 调用返回的对象引用。 出口require() 不返回。这只是一个参考module.exports.


相关用法


注:本文由纯净天空筛选整理自AStream26大神的英文原创作品 Difference between module.exports and exports in Node.js。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。