Логика c, связанная с моделью Loopback 4, и доступ к репозиторию - PullRequest
0 голосов
/ 06 марта 2020

Я работаю с Loopback 4, и у меня есть абстрактная модель, которая имеет некоторые методы логики c (которые, я думаю, могут быть помещены в эту модель, такие как геттеры, сеттеры и т. Д.), И некоторые из них должны сделать некоторые запросы к БД.

Я могу внедрить эти репозитории внутри контроллеров или инстанцируемых моделей, но как я могу получить доступ к этим репозиториям изнутри абстрактной модели? Я не могу внедрить его в конструктор, потому что он никогда не будет создан.

Можно ли создавать «контроллер» только для этой цели, без предоставления API?

Спасибо!

РЕДАКТИРОВАТЬ: Кажется, что внедрение контроллера внутри модели тоже не работает, он работает sh при запуске npm start:

/ node_modules / refle-metadata / Reflect. js: 354 throw new TypeError ();

TypeError: at Object.getMetadata (/node_modules/reflect-metadata/Reflect.js:354:23)

at NamespacedReflect.getMetadata (/node_modules/@loopback/metadata/src/reflect.ts:49:20)
at Function.getClassMetadata (/node_modules/@loopback/metadata/src/inspector.ts:63:19)
at getJsonSchema (/node_modules/@loopback/repository-json-schema/src/build-schema.ts:89:36)
at Object.getJsonSchemaRef (/node_modules/@loopback/repository-json-schema/src/build-schema.ts:140:33)
at Object.getModelSchemaRef (/node_modules/@loopback/openapi-v3/src/controller-spec.ts:495:22)
at Object.<anonymous> (/src/controllers/api-credential.controller.ts:38:40)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/src/controllers/index.ts:1:1)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
...