На данный момент routing-controllers достаточно популярен в Express-сообществе, так как предоставляет удобный способ описания контроллеров с помощью TypeScript.
Для описания контроллеров в Express с использованием TypeScript, согласно руководству на Хабре, можно использовать следующий подход:
1. Установите необходимые зависимости:
```
npm install express reflect-metadata routing-controllers
```
2. Создайте файл app.ts (или index.ts) и добавьте следующий код:
```typescript
import "reflect-metadata";
import { createExpressServer, Controller, Get } from "routing-controllers";
@Controller()
class HelloWorldController {
@Get("/hello-world")
helloWorld() {
return "Hello, world!";
}
}
const app = createExpressServer({
controllers: [HelloWorldController]
});
app.listen(3000, () => {
console.log("Server is running on port 3000");
});
```
3. Запустите сервер при помощи команды `ts-node app.ts` (если вы используете ts-node) или скомпилируйте TypeScript в JavaScript и запустите с помощью `node dist/app.js`.
В приведенном примере кода контроллер `HelloWorldController` описывается с использованием декоратора `@Controller`, а метод `helloWorld` с помощью декоратора `@Get("/hello-world")`. Это стандартный способ описания контроллеров с использованием routing-controllers.
Однако следует отметить, что этот код является только примером, и в реальном проекте может потребоваться дополнительная настройка и использование других функциональных возможностей routing-controllers.