АБ
Size: a a a
АБ
S🛸
И
S🛸
GS
В-
CM
В-
АК
inversify
? ну или с помощью любого другого di - typedi
например?АК
objection
модельками, сервисный слой, который как раз и будет строится и склеиваться с помощью inversify
. и вот где-то сбоку есть rest-веб-вервер. не суть важно - koa
или express
. возник вопрос - как эти сервисы из сервисного слоя, склеенные с помощью inverisy
-я прокидывать в роуты/контроллеры?u
АК
import Router from '@koa/router';где-то снаружи вызывается эта
export default function setupRoutes(config = {}) {
const router = new Router(config);
router.get('/', ctx => {
// ...
});
router.post('/users/:id', ctx => {
// ...
})
return router;
}
setupRoutes
и вернувшиеся роуты маунтятся на веб-сервер.container
внутрь setupRoutes
и уже там делать что-то типа такого?import { TYPES } from '~/services';Но ведь тогда di превращается в Service Locator, что как бы антипаттерн и такого же результата я могу достичь и без
export default function setupRoutes(container, config = {}) {
// ...
router.post('/users/:id', async ctx => {
const user = ctx.body;
// validation here...
const usersService = container.get(TYPES.UsersService);
await usersService.createUser(ctx.body);
// ...
})
return router;
}
inversify
.АК
АБ
AW
ДФ
И
AW
S🛸
R