Open ggomma opened 3 months ago
3 Layered Architecture를 조금 더 잘 사용하자면 middleware에서 repository를 주입받아 repository를 호출하는 것이 좋습니다.
const validateRefreshToken = (userRepository) => { return async (req, res, next) => { ... } } router.use("/", validateRefreshToken(userRepository), (req, res, next) => ...)
https://github.com/currypang/layered-refactoring-market/blob/b4c48639dd9c84fea8406276f74c76c613a31cb2/src/middlewares/require-refresh-token-middleware.js#L9-L12
error-handler.middleware.js에서 if(err instanceof HttpError.NotFound) 와 같은 구문을 사용하기 위해서는 error를 발생하는 부분에서 HttpError.NotFound를 사용해야 합니다.
error-handler.middleware.js
if(err instanceof HttpError.NotFound)
HttpError.NotFound
예시를 들자면 다음과 같습니다.
export class UsersController { // 내 정보 조회 getUser = async (req, res, next) => { const user = req.user; try { return res .status(HTTP_STATUS.OK) .json({ status: HTTP_STATUS.OK, message: MESSAGES.USERS.READ_ME.SUCCEED, data: user }); } catch (err) { const error = new HttpError.Conflict(err.message); next(error); } }; }
피드백 감사합니다!
Feedback
총평
개선 사항
middleware와 의존성 주입
3 Layered Architecture를 조금 더 잘 사용하자면 middleware에서 repository를 주입받아 repository를 호출하는 것이 좋습니다.
https://github.com/currypang/layered-refactoring-market/blob/b4c48639dd9c84fea8406276f74c76c613a31cb2/src/middlewares/require-refresh-token-middleware.js#L9-L12
Custom Error
error-handler.middleware.js
에서if(err instanceof HttpError.NotFound)
와 같은 구문을 사용하기 위해서는 error를 발생하는 부분에서HttpError.NotFound
를 사용해야 합니다.예시를 들자면 다음과 같습니다.