@Kroid

Почему переменная 'mongoose' из файла 'script.js' при запуске содержит модель из файла 'schema.js'?

Столкнулся с необычным для меня поведением. Есть 2 файла в одной папке:
schema.js
var mongoose = require('mongoose');
var bugSchema = mongoose.Schema({
  name: String,
  value: Number
});
mongoose.model('Bug', bugSchema);

script.js
var mongoose = require('mongoose');
require('./schema');

Почему переменная 'mongoose' из файла 'script.js' при запуске содержит модель из файла 'schema.js'?
  • Вопрос задан
  • 2592 просмотра
Решения вопроса 1
@snackovich
потому что require "исполняет модуль" единожды,
при повторном подключении он возвращает уже загруженный ранее модуль
mongose видимо имеет внутреннюю регистрацию моделей.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Потому что mongoose.model('Bug', bugSchema);.
В дальнейшем схему, зарегистрированную таким образом, можно юзать так:

var mongoose = require('mongoose');
var Bug = mongoose.model('Bug');
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы