首页 > 解决方案 > 如何通过不使用 new 关键字来运行带类的 NodeJS 项目

问题描述

我正在使用 TypeScript 开发一个 NodeJS 项目。但我不知道如何app.ts使用类来运行文件。

如何在没有新关键字的情况下运行 Root 类?这就是我想说的。

应用程序.TS

// Express
import { application as app } from 'express';

// Controllers
import { UserController } from './controllers/user.controller'

export class App {
  constructor(userController: UserController) {
    console.log("App is running");
    console.log("UserController url path is : ", userController.getUrlPath);
  }

  run(): void {
    app.listen(3000, function () {
      console.log('App is running on port 3000!');
    });
  }
}

根.TS

import { App } from "../app";

export class Root {
    constructor(application: App) {
        application.run();
    }
}

如何在没有新关键字的情况下运行 Root 类?这就是我想说的。

因为它必须通过依赖注入来获取其构造函数的参数实例。

编译器启动代码:

ts-node-dev --respawn --transpileOnly ./app/root.ts

此代码尝试运行 root.ts 文件的代码。有一个 Root 类,但没有创建类的对象。因此,没有可运行的类或方法。

标签: javascriptnode.jstypescript

解决方案


要执行 TS 文件,您可以简单地安装和使用ts-node,它具有与普通节点相同的行为,但会转译所需的任何文件。

这样,您甚至不需要在运行代码之前对其进行转译。


推荐阅读