如何通过不使用新关键字来与类一起运行NodeJS项目

时间:2019-06-08 12:04:29

标签: javascript node.js typescript

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

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

App.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!');
    });
  }
}

Root.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类,但没有创建的类对象。因此,没有可运行的类或方法。

2 个答案:

答案 0 :(得分:0)

您无法使用Node.JS“执行” .ts文件,您需要首先在JavaScript中对其进行编译。 使用打字稿模块执行此操作:npm i -s typescript

然后在终端中运行命令tsc

答案 1 :(得分:0)

要执行TS文件,您只需安装并使用ts-node,它就具有与普通节点相同的行为,但是可以转换所需的任何文件。

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