• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

리팩토링 강의에서 라우터 리팩토링 전개연산자(...)

23.06.27 01:18 작성 조회수 178

1

선생님 안녕하세요. 좋은강의 정말로 감사드립니다.

리팩토링 강의에서 라우터들을 Index.js로 통합시켜줄 때

module.exports = {
  ...require("./userRouter"),
  ...require("./blogRouter"),
  ...require("./commentRouter"),
};

이렇게 전개연산자(...)를 작성해주셨는데요. 이유가 뭘까요? 이렇게 안하고 그냥

module.exports = {
  require("./userRouter"),
  require("./blogRouter"),
  require("./commentRouter"),
};

이렇게 해주려고 하니 에러가 발생하더라구요. 이유가 뭘까요??

답변 1

답변을 작성해보세요.

1

안녕하세요~

a, b 파일이 각각 다음과 같이 export를 해준다고 가정을 해볼게요
const a = require("a") -> { foo, bar }
const b = require("b") -> { a, b, c }

전개 연산자를 해야 module.exports = { foo, bar, a, b, c } 이렇게 하나의 객체에 담깁니다
"..." 없이 하게 되면 module.exports = { { foo, bar }, { a, b, c} } 이렇게 되는건데 이건 문법적으로 불가능하죠. key가 빠졌으니깐요

이렇게 key를 추가해서 할 수는 있어요 module.exports = { a, b } -> 그러면 이런 형태로 됩니다: { a: { foo, bar }, b: { a, b, c } }

아하, 이해했습니다. 쉽고 친절한 설명 너무 감사합니다~~~