Я работаю над службой приложений на основе nodejs fastify и использую typedi для внедрения зависимостей.
Некоторые службы, которые я использую, требуют asyn c инициализации.
MyService.ts
export class MyService {
constructor() {
}
public async init() {
....
}
}
Я пытаюсь инициализировать службу при запуске приложения, чтобы любая служба, выполняющая Container.get (MyService), получила этот инициализированный экземпляр MyService
app.ts
export default async function(fastify: FastifyInstance, opts: Options, next: Function) {
// This loads everything under routes
fastify.register(autoload, {
dir: path.join(__dirname, "routes"),
options: opts,
includeTypeScript: true,
});
await Container.get(MyService);
next();
}
server.ts
import app from "./app";
const server = fastify({
logger: logger
});
server.register(oas, docs);
server.register(app);
server.ready(err => {
if (err) throw err;
server.oas();
});
server.listen(config.port, (err) => {
if (err) {
server.log.error(err);
process.exit(1);
}
server.log.info(`server listening on ${server.server.address()}`);
});
export default server;
Моя попытка инициализировать MyService не удалась.
MissingProvidedServiceTypeError [ServiceNotFoundError]: Cannot determine a class of the requesting service "undefined"
Есть намеки на то, что я делаю неправильно? Я новичок в nodejs и был бы очень признателен за образец кода, который подходит для этого сценария.
Edit Я пробовал импортировать
Container.import([CmkeService]);
MissingProvidedServiceTypeError [ServiceNotFoundError]: невозможно определить класс запрашивающая услуга "undefined"