@molekulyarniy

Каким образом из модуля импортируется только нужное (см. внутри)?

Я новичок во всей этой теме и не понимаю следующий момент.
Обычно я импортировал, например, схему из mongoose так -> Schema = mongoose.Schema;. То есть, указывал напрямую.
Но в одном из уроков на Ютубе я увидел такой способ импорта:
const {Schema, model, Types} = require('mongoose')
И мне стало интересно, каким образом при таком импорте из mongoose в переменную Schema импортируется именно Schema? А в model - именно model? Связано ли это с тем, что из самого пакета mongoose они экспортируются в именно в таком порядке?
P.S. говоря о пакетах... как называются все эти model, schema относительно самого пакета mongoose? Методы пакета?
  • Вопрос задан
  • 22 просмотра
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Связано ли это с тем, что из самого пакета mongoose они экспортируются в именно в таком порядке?


Нет, конечно. Это именованый экспорт.

Вы можете экспортировать из модуля объект по умолчанию:

export default function() {}

Такой экспорт может быть только один, и при импорте вы можете обозвать переменную как угодно:

import anything from 'my-module';

А есть экспорт по имени:

export const CONST_1 = 1;
export function MyFunc() {}


Таким образом вы можете экспортировать сколько угодно вещей. Импортировать их можете по имени

import { MyFunc, CONST_1 } from 'my-module';

Экспорт по умолчани и экспорты по имени можно совмещать в одном модуле.

import anything, { MyFunc, CONST_1 } from 'my-module';
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Бородатый программер
Конкретно в данном примере npm и модули ни при чем, обычные возможности js:
https://developer.mozilla.org/en-US/docs/Web/JavaS...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
03 дек. 2020, в 23:48
1500 руб./в час
03 дек. 2020, в 22:34
500 руб./за проект
03 дек. 2020, в 22:19
150000 руб./за проект