Создать один экземпляр и экспортировать его много раз
Занимаюсь сейчас разработкой бекенд-приложения, api. У меня есть ORM Sequelize и, соответственно, модели для представления разных таблиц. Создание модели выглядит примерно так:
const { Sequelize, DataTypes, Model } = require('sequelize');
class User extends Model {}
User.init({
// Model attributes are defined here
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING
// allowNull defaults to true
}
}, {
// Other model options go here
sequelize, // We need to pass the connection instance
modelName: 'User' // We need to choose the model name
});
Ситуация в том, что эту модель мне надо экспортировать в разных сервисах. И при том я явно не могу написать module.exports = User, потому что в таком случае я буду много раз создавать одну и ту же модель. А это, вроде как, не есть желательное поведение.
Как я могу создать объект единожды, а потом экспортировать его экземпляр много раз?
Ответы (1 шт):
Инициализация происходит один раз, потом уже всё кэшируется NodeJs и отдается просто ссылка. Можете проверить добавив вывод console.log('User model created') после вызова User.init