Node.js 在所有模块解析并导入TypeScript后执行代码

Node.js 在所有模块解析并导入TypeScript后执行代码,node.js,typescript,express,Node.js,Typescript,Express,我在Express应用程序中使用TypeScript。我将某些端点的注册分布在其他几个模块中。这些模块导入main.ts并注册它们(请参见depFoo.ts)。不幸的是,它们似乎没有注册,因为app在执行注册之前开始侦听deppFoo.ts 在TypeScript中,解决这个Heg Enn问题的正确方法是什么?我可以注册一个回调,在TypeScript解析所有模块后执行吗 梅因酒店 depFoo.ts main.ts export const-app:express.Application=

我在Express应用程序中使用TypeScript。我将某些端点的注册分布在其他几个模块中。这些模块导入
main.ts
并注册它们(请参见
depFoo.ts
)。不幸的是,它们似乎没有注册,因为
app
在执行注册之前开始侦听
deppFoo.ts

在TypeScript中,解决这个Heg Enn问题的正确方法是什么?我可以注册一个回调,在TypeScript解析所有模块后执行吗

  • 梅因酒店
  • depFoo.ts
main.ts

export const-app:express.Application=express();
应用程序侦听(3000,函数(){
log(“应用程序正在监听端口3000!”);
});
depFoo.ts

import{app}import.“/main.ts”
app.get(…);
教程对使用express TS的路由器样式系统进行了很好的解释。其中一种更简洁的方法是使用类似

从“express”导入*为express;
导出常量寄存器=(应用程序:express.Application)=>{
应用程序获取(“/”,(请求:任意,res)=>{
res.render(“索引”);
} );
};
然后在主
应用程序中
文件中,您可以使用

import*作为来自“./routes”的路由
...
const app=express()
路线。注册(应用程序)

这将使主文件更加清晰,端点更加模块化。

尝试让这些模块返回Promise,然后通过Promise.all获得所有已解析的模块,我认为这会对您有所帮助。我刚刚找到了
模块。导出
,这似乎是跨其他模块传递实例的一个好选择