node.js

계층형 아키텍처로 프로젝트 작성하기 (트러블슈팅 01)

늘곰's 2023. 9. 16. 18:09

3계층 아키텍처로 프로젝트를 작성하는 도중 아직 이 계층에 대한 이해가 부족한지 뭘 할때마다 다 오류다..
맨날 생기는 오류라서 다시한번 정리를 해 놓으려고한다. 
기존에 ROUTES 폴더에서 한번에 작성했을때는 크기 신경쓰지 않았는데 routres controller service repository 로 
나누다보니 뭔 연결이 안되었다는오류 not defind 등등 많은 오류가 생겼다.

 

오류 1. 

라우터에 한번에 작성했을떄의 기억이 많이 남아있어서 습관적으로 라우터에 들어갈 내용을 다 작성하고 
컨트롤러 부분으로 넘어갈려고 생각하는 경우가 많았다.
그래서 이런식으로 다 작성을 하고 넘어가려고하니 
C:\Users\wfox1\Desktop\hanghae99\EDU\node\Dribbling\BackEnd\node_modules\express\lib\router\route.js:
211
        throw new Error(msg);
              ^

Error: Route.post() requires a callback function but got a [object Undefined] 이런 오류가 생겼다.

라우터 부분에서 게시글을 생성할때 postController 의 createPost 에서 뭔가의 데이터를 불러와야하는데
라우터부터 작성하려고 하다보니 컨트롤러 부분에 아무런 정보도 있지 않아서 발생한 오류.

이래서 노드몬으로 서버를 열려고 시도했을때 안열였던 것...

라우터 부분의 import 의 다른부분의 주석또한 마찬가지다. 
안의 내용이 아무것도 없는데 import시키면 마찬가지의 이유로 서버가 안열린다.

 

라우터 부분

import express from "express";
// //import {prisma} from '../utils/prisma/index.js';
import {PostController} from './contoller.js';
// // import PostService from "./service.js";
// // import PostRepository from "./repository.js";

const router = express.Router();

// // const postRepository = new PostRepository(prisma);
// // const postService = new PostService(postRepository);
const postController = new PostController();


// /* 게시글 생성 */
 router.post('/', postController.createPost);


// /* 게시글 목록 조회 */


export default router;

 

컨트롤러 부분 

export class PostController {

    
//  /* 게시글 생성 */
//  createPost = async(req,res,next) =>{

//  }
 
}