컨트롤러
컨트롤러는 클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환해주는 역할을 한다.
클라이언트의 요청을 수신하고, 요청에서 들어온 데이터 및 내용을 검증한 뒤 서버에서 수행된 결과를 클라이언트에 반환한다.
프레젠테이션 계층(Presentation Layer)
프레젠테이션 계층은 대표적으로 컨트롤러로 사용된다. 사용자가 서버에 요청을 하게 되면 가장 먼저 만나게 되는 계층이다.
하위 계층(서비스 계층, 저장소 계층) 에서 발생하는 예외(Exception)를 처리한다.
클라이언트가 전달된 데이터에 대해 유효성을 검증하는 기능을 수행한다.
클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환한다.
Express 에서의 컨트롤러
클라이언트의 요청을 받음
요청에 대한 처리는 서비스에 전달
클라이언트에게 응답
// Controller 에서는 특정 요구사항을 서비스 계층에게 단순한 호출을 하고 컨트롤러에서 받은 결괏값을 사용자에게 보여주는 역할을 한다.
// 서비스 계층에 post 에 해당하는 서비스 모듈을 가져와서 PostService 변수에 할당한다.
const PostService = require("../services/posts.service")
// Post 의 컨트롤러 역할을 하는 클래스
class PostsController {
// Post 서비스의 클래스를 컨트롤러 클래스의 멤버 변수로 할당, 인스턴스로 생성
postService = new postService()
getPosts = async (req, res, next) => {
// 서비스 계층에 구현된 findAllPost 로직 실행
// http 메소드 get, 기본 url 일 때 실행
const posts = await this.postService.findAllPost()
res.status(200).json({ data: posts })
}
createPost = async (req, res, next) => {
const { nickname, password, title, content } = req.body
//서비스 계층에 구현된 createPost 로직 실행
// http 메소드 post, 기본 url 일 때 실행
const createPostData = await this.postService.createPost(nickname, password, content)
res.status(201).json({ data: createPostData })
}
}
module.exports = PostsController
'JavaScript > node.js' 카테고리의 다른 글
Sequelize paranoid(삭제-복구) (0) | 2022.12.24 |
---|---|
아키텍쳐 패턴(Architecture Pattern) (0) | 2022.12.10 |
JWT (0) | 2022.12.08 |
Node.js, 파일 시스템 기능 (1) | 2022.11.24 |
Node.js, node.j란? (0) | 2022.11.24 |