我正在研究基于nodejs fastify的应用程序服务,并使用typedi进行依赖项注入。
我使用的某些服务需要异步初始化。
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的新手,非常感谢适合这种情况的示例代码。
编辑 我尝试导入
Container.import([CmkeService]);
MissingProvidedServiceTypeError [ServiceNotFoundError]:无法确定请求服务的类“未定义”