Skip to content

Контейнер сервисов для Node.js

Notifications You must be signed in to change notification settings

fortSQ/nodejs-service-container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js service container

var container = require('container');
var Service = require('модуль_сервиса');

container.serviceA = function () { return new Service(); }; // новый объект каждый раз
container.serviceB = container.share(function () { return new Service(); }); // один и тот же объект при вызове

container.get('сервисN'); // доступ к сервису

Запустить тесты можно из консоли:

npm test

И в чем профит?

При создании единственного экземпляра сервиса можно было бы написать так:

container.newService = new Service();
...
console.log(container.newService); // возвращается тот же объект

Но! В таком случае объект создается еще на стадии определения сервиса, даже если он не будет нужен.
Преимущество асинхронного подхода через функцию share() - создание единственного объекта при первом обращении через get() и последующее его использование. Если же обращений за цикл request-response не было, объект создан не будет.

Доступ к контейнеру внутри замыкания

container.newService = function () {
    console.log(this); // this - объект container
};

About

Контейнер сервисов для Node.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published