Уникально идентифицировать диск

почему оба используются здесь

Я считаю, что они просто хотят быть ясными, что module.exports, exports и nano указывают на ту же функцию - позволяя вы можете использовать любую переменную для вызова функции внутри файла. nano предоставляет некоторый контекст того, что делает функция.

exports не будет экспортироваться (только module.exports будет), так зачем же переписывать это?

Комплимент подробностей ограничивает риск будущих ошибок, например, используя exports вместо module.exports в файле. Он также дает разъяснения, что module.exports и exports на самом деле указывают на одно и то же значение.


module.exports vs exports

Пока вы надеваете 't переназначить module.exports или exports (и вместо этого добавить значения к объекту, к которому они обращаются), вы не будете иметь никаких проблем и можете безопасно использовать exports для более кратких.

При назначении не-объекту они теперь указывают на разные места, которые могут сбивать с толку, если вы не намерены хотеть module.exports быть чем-то конкретным (например, функцией).

Установка exports на не-объект не имеет особого смысла, поскольку вам нужно будет установить module.exports = exports в конце, чтобы иметь возможность использовать его в других файлах.

let module = { exports: {} };
let exports = module.exports;

exports.msg = 'hi';
console.log(module.exports === exports); // true

exports = 'yo';
console.log(module.exports === exports); // false

exports = module.exports;
console.log(module.exports === exports); // true

module.exports = 'hello';
console.log(module.exports === exports); // false

module.exports = exports;
console.log(module.exports === exports); // true

Зачем присваивать функцию module.exports функции?

Более краткий! Сравните, насколько короче второй пример:

helloWorld1.js: module.exports.hello = () => console.log('hello world');

app1.js: let sayHello = require('./helloWorld1'); sayHello.hello; // hello world

helloWorld2.js: module.exports = () => console.log('hello world');

app2.js: let sayHello = require('./helloWorld2'); sayHello; // hello world

0
задан user1716729 16 January 2019 в 12:17
поделиться