Skip to content

denistort/node-js-layered-architecture-express

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Layered Express app with Controllers decorators nest js like

What does this express template contain?

  1. DI using inversify
  2. Custom decoarotors which created by me, for register controllers and handlers.
  3. Clean Architecture
  4. 100% Testable
  5. Exception Filters
  6. Middlewares
  7. Custom Http Errors
  8. Validation Pipes

Simple example how looks controller

@Controller('/users')
@injectable()
export default class UsersController implements IUsersController {
	constructor(
		@inject(TYPES.ILogger) private loggerService: ILogger,
		@inject(TYPES.IUserService) private userService: IUserService,
	) {}

	@Get('/login')
	public login(_req: Request, res: Response): void {
		throw new HttpError(401, 'ошибка авторизации');
	}

	@ValidationPipe(UserRegisterDto)
	@Post('/register')
	public async register(
		{ body }: Request<{}, {}, UserRegisterDto>,
		res: Response,
		_next: NextFunction,
	): Promise<void> {
		const user = await this.userService.createUser(body);
		res.status(201).json(user);
	}
}

Releases

No releases published

Packages

No packages published