node.js - 在 TypeScript 中解析并导入所有模块后执行代码
问题描述
我将 TypeScript 用于我的 Express 应用程序。我将某些端点的注册分布在其他几个模块中。这些模块导入main.ts
并注册它们(参见 参考资料depFoo.ts
)。不幸的是,他们似乎没有注册,因为在执行之前app
开始监听它的注册!? deppFoo.ts
TypeScript 中解决这个 Heg-Enn 问题的正确方法是什么?我可以注册一个在 TypeScript 解析所有模块后执行的回调吗?
- main.ts
- depFoo.ts
main.ts
export const app: express.Application = express();
app.listen(3000, function () {
console.log("App is listening on port 3000!");
});
depFoo.ts
import { app } import "./main.ts"
app.get(...);
解决方案
本教程对带有 express TS 的路由器样式系统进行了很好的解释。一种更简洁的方法是创建一个routes
目录,其中的文件类似于
import * as express from "express";
export const register = ( app: express.Application ) => {
app.get( "/", ( req: any, res ) => {
res.render( "index" );
} );
};
然后在你的主app
文件中你可以使用
import * as routes from './routes'
...
const app = express()
routes.register(app)
这使您的主文件更加干净,并且您的端点更加模块化。
推荐阅读
- python - 是否可以在 tkinter 中用标签覆盖输入字段?
- docker - 为什么 docker 容器无法访问其他容器?
- javascript - Onclick 或 eventListener('click') 未按预期调用函数
- python - 当它应该在范围内时,列出超出范围的索引
- angular - IE11 中的 Angular 7 和材质渲染不正确
- python - Python 执行另一个文件
- python - Python Sympy求解器在求解三角方程时出错
- python - 重新启用 spacy 的解析器组件给出错误
- python - 如何有效地执行字典合并?
- python-3.x - 功能外观,需要生成一个随机选择 4 个选项的列表