diff --git a/src/app.ts b/src/app.ts index 2b22ae4..e2d3b29 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,22 +1,24 @@ import express, {Express} from 'express'; -import { userRouter } from './users/users'; import { Server} from 'http'; import { LoggerService } from './logger/logger.service'; +import { UserController } from './users/users.controller'; export class App { app: Express; server: Server; port: number; logger: LoggerService; + userController: UserController - constructor(logger: LoggerService) { + constructor(logger: LoggerService, userController: UserController) { this.app = express(); this.port = 8000; this.logger = logger; + this.userController = userController; } useRoutes() { - this.app.use('/users', userRouter); + this.app.use('/users', this.userController.router); } public async init() { diff --git a/src/common/base.controller.ts b/src/common/base.controller.ts index 4383b7b..253d1fa 100644 --- a/src/common/base.controller.ts +++ b/src/common/base.controller.ts @@ -29,7 +29,7 @@ export abstract class BaseController { protected bindRoutes(routes: IControllerRoute[]) { for(const route of routes) { - this.logger.log(`[${route.method}: ${route.path}`); + this.logger.log(`[${route.method}]: ${route.path}`); const handler = route.func.bind(this); this.router[route.method](route.path, handler); } diff --git a/src/main.ts b/src/main.ts index ad46bc3..b5d8ecf 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,8 +1,10 @@ import { App } from "./app"; import { LoggerService } from "./logger/logger.service"; +import { UserController } from "./users/users.controller"; async function bootstrap() { - const app = new App(new LoggerService); + const logger = new LoggerService(); + const app = new App(logger, new UserController(logger)); await app.init(); } diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts new file mode 100644 index 0000000..b3093b7 --- /dev/null +++ b/src/users/users.controller.ts @@ -0,0 +1,21 @@ +import { NextFunction, Request, Response } from "express"; +import { BaseController } from "../common/base.controller"; +import { LoggerService } from "../logger/logger.service"; + +export class UserController extends BaseController{ + constructor(logger: LoggerService) { + super(logger); + this.bindRoutes([ + {path: '/login', method: 'post', func: this.login}, + {path: '/register', method: 'post', func: this.register} + ]) + } + + login (req: Request, res: Response, next: NextFunction) { + this.ok(res, 'login') + } + + register(req: Request, res: Response, next: NextFunction) { + this.ok(res, 'register') + } +} \ No newline at end of file diff --git a/src/users/users.ts b/src/users/users.ts deleted file mode 100644 index 0a91e75..0000000 --- a/src/users/users.ts +++ /dev/null @@ -1,18 +0,0 @@ -import express from 'express' - -const userRouter = express.Router() - -userRouter.use((req, res, next) => { - console.log('Обработчик users') - next() -}) - -userRouter.post('/login', (req, res) => { - res.send('/login') -}) - -userRouter.post('/register', (req, res) => { - res.send('/register') -}) - -export {userRouter} \ No newline at end of file