TL DR
You can use:
exports.x = 1;
exports.y = 2;
exports.z = 3;
as a shorter way to write:
module.exports.x = 1;
module.exports.y = 2;
module.exports.z = 3;
The only advantage is not to print.
But you should write:
module.exports = {
x: 1,
y: 2,
z: 3
};
as this will not work:
exports = {
x: 1,
y: 2,
z: 3
};
because it will not change module.exportsand it module.exports, which is actually exported .
Description
, , . exports, , module, exports :
module.exports === exports
:
exports.x = 10;
( , ), . x exports.x, module.exports.x.
:
exports = {x: 10};
exports, module.exports () . , exports.x, module.exports.x, :
module.exports !== exports
, , exports, module.exports:
module.exports = {x: 10};
module.exports exports :
module.exports !== exports
module.exports, , .
module.exports exports:
module.exports = {x: 10};
exports = module.exports;
:
exports = {x: 10};
module.exports = exports;
:
exports.y = 20;
.
(), ().
, :
function private1() {
}
function private2() {
}
function public1() {
}
function public2() {
}
:
module.exports.public1 = public1;
module.exports.public2 = public2;
exports.public1 = public1;
exports.public2 = public2;
module.exports = {
public1: public1,
public2: public2
};
module.exports = {
public1,
public2
};
exports = {
public1: public1,
public2: public2
};
exports = {
public1,
public2
};
, exports , module.exports , , , , . module.exports .
.
. :