Callback 함수를 이용하여 구현

callback 함수 : 함수안에서 다른 함수를 호출하는 것

const asyncHandler = (body) => {
  return async (req, res, next) => {
    try {
      await body(req, res);
    } catch (err) {
      next(err);
    }
  };
};

// 새로운 게시물 생성
const testNewPost = async(req,res,next) =>{
	// ... 코드 생략...
	const newPost = await Post.findOne(id)
	res.status(201).send(newPost);
}

router.post('/test', asyncHandler( testNewPost));

 

 왜 async(req, res,next) 를 중복해서 사용해야 할까?

조사를 하다가 계속 이해가 안가서 chatGPT에서 질문을 던졌다......

asyncHandler 에서의 async오류 처리를 위한 것이며,

testNewPost에서의 async실제 비즈니스 로직 내의 비동기 작업을 위한 것입니다. 따라서 testNewPost 함수 내에 비동기 작업이 있을 경우, 이 함수는 async 로 선언되어야 합니다.

+ Recent posts