Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
function Inject(field, instanceName) {
return function(target) {
target[field] = CONFIG[instanceName];
}
}
@Inject("pgConnection", "pgConnector")
@Inject("mongoConnection", "mongoConnector")
class MyService {
var pgConnection;
var mongoConnection;
}
Почему не di.js?
- он написан с использованием ES6, т.е. нуждается в предварительной компиляции в ES5
Для нашей цели можно воспользоваться spread operator
… из них самый интересный — di.js от Angular, но он мне не подошел и я решил написать свой.
=)
Если по теме – когда-то пилил тоже "свой", с асинхронной загрузкой, ленивым инстанцированием и прочими прелестями:
https://github.com/gobwas/dm.js
В качестве DI в js/ts мне понравилась эта штука: http://inversify.io/
context.logger а как logger.write('string');serviceLocator.get('logger') и logger.write('string'); отличаются существенно, первый получает ссылку на зависимость, а второй использует зависимость.
Простой Dependency Injection в Node.js