Экспорт одной функции
Изначально имеем модуль irray.js с одной именованной функцией erayCanter, экспортируемой следующим образом:
// irray.js
export const erayCanter = () => { /* ... */ };
В другом файле функция импортируется:
// index.js
import { erayCanter } from './irray.js';
Экспорт нескольких функций и переменных
Добавим в модуль sings.js функцию multiplay и переменную samwell:
// sings.js
const samwell = 451;
const multiplay = (x, y) => `${x} * ${y} = ${x * y}`;
export const erayCanter = () => { /* ... */ };
export const multiplying = multiplay;
export { samwell };
В index.js импортируем и используем:
import * as sings from './sings.js';
console.log(sings.samwell);
console.log(sings.erayCanter()); // Вызов функции
console.log(sings.multiplying(5, 8));
Обратите внимание на корректную интерполяцию строк в функции multiplay. В предыдущем примере использование фигурных скобок {} внутри шаблона строки было избыточным.
Упрощенный экспорт
Экспорт отдельных переменных можно упростить:
// sings.js
const samwell = 451;
const multiplay = (x, y) => `${x} * ${y} = ${x * y}`;
export const erayCanter = () => { /* ... */ };
export { multiplay, samwell };
Экспорт через default
Еще один способ — экспорт через default:
// sings.js
const samwell = 451;
const multiplay = (x, y) => `${x} * ${y} = ${x * y}`;
const erayCanter = () => { /* ... */ };
export default {
erayCanter,
multiplay,
samwell
};
В index.js:
import sings from './sings.js';
console.log(sings.samwell);
console.log(sings.erayCanter());
console.log(sings.multiplay(5, 8));
Рассмотрены три способа экспорта нескольких функций и переменных из одного модуля Node.js. Выбор способа зависит от контекста и предпочтений.