TypeScript를 사용한 Express.js의 OOP 접근 방식의 3가지 좋은 점
TypeScript가 가능하게 하는 것
TypeScript는 JavaScript 프로젝트를 위한 엄격한 타이핑 시스템을 제공하고 코딩 중 오류로부터 프로그래머를 구합니다. 또한 'Interface'와 'Abstract' 클래스를 부여하여 OOP(Object-Oriented Programming) 스타일의 사용을 가능하게 한다.
클라이언트 측뿐만 아니라
TypeScript 사용은 클라이언트 측에서 널리 사용되었지만 서버 측 JavaScript에도 적용할 수 있습니다. Express.js는 JavaScript 코드가 서버 측에서 작동할 수 있도록 하는 런타임 환경인 Node.js의 웹 프레임워크이며 TypeScript도 Express와 함께 사용됩니다.
Express의 일반적인 스타일
일반적인 Express 코드는 한 번에 콜백 함수를 취하기 때문에 함수형 프로그래밍 스타일로 작성됩니다.
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello world');
});
그러나 TypeScript를 사용하면 클래스 기반 스타일을 활용할 수 있고 여러 가지 장점을 볼 수 있습니다.
TypeScript를 OOP와 함께 사용할 때의 3가지 이점
다음은 OOP 접근 방식을 취할 때 얻을 수 있는 긍정적인 이점입니다.
유형 선언 수 줄이기
컨트롤러를 작성할 때 모든 변수와 유형 선언을 내보내야 합니다. 컨트롤러 클래스가 있으면 함께 넣을 수 있습니다.
예를 들면 다음과 같습니다.
controller/users.ts
export class UsersController {
public async createUser(req: Request, res: Response) {
const user = new User(req.body);
await user.save();
res.status(201).send(user);
}
public async fetchUsers(req: Request, res: Response) {
const users = await User.find({});
res.status(200).send(users);
}
}
라우터는 컨트롤러가 UsersController임을 알고 해당 유형을 감지해야 합니다.
routes/users.ts
import { Router } from 'express';
import { UsersController } from '../controllers/users';
const router = Router();
const usersController = new UsersController();
router.get('/', usersController.fetchUsers);
router.get('/create', usersController.createUser);
라우터 클래스를 만들 수도 있습니다.
디자인 패턴
디자인 패턴은 소프트웨어 개발의 일반적인 솔루션 패턴이며 OOP와 함께 사용됩니다.
데코레이터
A Decorator is a special kind of declaration that can be attached to a class declaration, method, accessor, property, or parameter.
From TypeScript Official Site
Decorators are TypeScript specialty, and it is based on the OOP approach. For example, you can execute some processes before a class instance is generated.
const Something = (constructor: Function) => {
console.log('Some functions before the class instantiate');
}
@Something
class User {
constructor(name: string) {
console.log(`User ${name} is created`);
}
}
const user1 = new User('user2');
const user2 = new User('user1');
출력은
둘 이상의 데코레이터를 설정할 수 있습니다.
결론
Express에서 TypeScript의 고유한 기능과 OOP를 최대한 활용할 수 있습니다.
Nest.js 또는 Deno도 좋아할 수 있습니다. 둘 다 런타임 환경이며 기본적으로 TypeScript를 지원합니다.
Reference
이 문제에 관하여(TypeScript를 사용한 Express.js의 OOP 접근 방식의 3가지 좋은 점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koichi_t/3-good-things-of-oop-approach-in-expressjs-with-typescript-4o83텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)