Javascript Typescript InversifyJS-如何从maint.ts设置变量值并从控制器获取值
我不熟悉打字脚本和JS。我试图实现的是跨多个文件共享变量值。我正在main.ts上设置服务器启动时的值,并尝试从控制器获取该值。我所做的是创建了一个@injectable服务文件 服务台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 {
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。您好,很抱歉延迟。上面说找不到“客户”这个名字?