Javascript Typescript InversifyJS-如何从maint.ts设置变量值并从控制器获取值

Javascript Typescript InversifyJS-如何从maint.ts设置变量值并从控制器获取值,javascript,typescript,inversifyjs,Javascript,Typescript,Inversifyjs,我不熟悉打字脚本和JS。我试图实现的是跨多个文件共享变量值。我正在main.ts上设置服务器启动时的值,并尝试从控制器获取该值。我所做的是创建了一个@injectable服务文件 服务台 import { injectable } from 'inversify'; @injectable() export class SetGetService { private _client : any; get () : any {

我不熟悉打字脚本和JS。我试图实现的是跨多个文件共享变量值。我正在main.ts上设置服务器启动时的值,并尝试从控制器获取该值。我所做的是创建了一个@injectable服务文件

服务台

 import { injectable } from 'inversify';

    @injectable()
    export class SetGetService  {

        private _client : any;

        get () : any {
            return this._client;
        }

        set (client: any) {
            this._client = client;
        }                                                                           
  } 

我可以从main.ts设置该值,但在对其他文件调用SetGetService后,该值未定义或为空。看起来它好像被重置或清除了

您可以在
main.ts
文件中执行以下操作:

const client = new Client();
container.bind<Client>("Client").toConstantValue(client);
如果客户机是DB客户机且其初始化是异步的,则可能需要使用以下选项:

// ioc_modules.ts

const asyncModule = new AsyncContainerModule(async (bind) => {
    const client = await Client.getConnection();
    bind<Client>("Client").toConstantValue(client);
});

// main.ts

(async () => {
    await container.loadAsync(asyncModule);
})()
//ioc\u modules.ts
常量asyncModule=新的AsyncContainerModule(异步(绑定)=>{
const client=wait client.getConnection();
将(“客户”)绑定到ConstantValue(客户);
});
//梅因酒店
(异步()=>{
wait container.loadAsync(异步模块);
})()

您可以在
main.ts
文件中执行以下操作:

const client = new Client();
container.bind<Client>("Client").toConstantValue(client);
如果客户机是DB客户机且其初始化是异步的,则可能需要使用以下选项:

// ioc_modules.ts

const asyncModule = new AsyncContainerModule(async (bind) => {
    const client = await Client.getConnection();
    bind<Client>("Client").toConstantValue(client);
});

// main.ts

(async () => {
    await container.loadAsync(asyncModule);
})()
//ioc\u modules.ts
常量asyncModule=新的AsyncContainerModule(异步(绑定)=>{
const client=wait client.getConnection();
将(“客户”)绑定到ConstantValue(客户);
});
//梅因酒店
(异步()=>{
wait container.loadAsync(异步模块);
})()

嗨!谢谢您的回答,“客户机”包含什么?“客户机”只是一个用作ID的字符串,在TypeScript中,ID不能是接口,因为接口在编译期间从代码中删除,因此在运行时不可用。您可以使用字符串、类或符号作为ID。您好,很抱歉延迟。上面写着找不到“客户”的名字?嗨!谢谢您的回答,“客户机”包含什么?“客户机”只是一个用作ID的字符串,在TypeScript中,ID不能是接口,因为接口在编译期间从代码中删除,因此在运行时不可用。您可以使用字符串、类或符号作为ID。您好,很抱歉延迟。上面说找不到“客户”这个名字?