노드js에서 사이트맵/네비게이션/breadcrumb 등의 동적처리방법


(Joonseok Hu) #1

노드js에서 웹사이트의 사이트맵 구조를 처리하는 방법에 대해서 질문이 있습니다.

사이트에서 페이지로 접근가능한 라우트 구조를 중첩된 객체-배열 구조로 만들어 두면, 네비게이션 메뉴와 breadcrumb가 동적으로 렌더링 되도록 하고싶은데요 (프론트 프레임워크는 아직 안쓰는중입니다.)

단순 객체 구조를 만들고 for문 좀 돌리면 될줄 알았는데 생각보다 복잡해서 막막합니다.

원하는 기능은…

  1. 전체 url을 모든 페이지 객체에 다 쓰지 않아도, 중첩구조를 가지고 url 알아서 만듦
  2. 각각의 페이지 객체가 자기가 어느 중첩깊이를 가지는지 알고있고, 자신의 직계 조상들과 직계 형제의 정보를 알고있음 (물론 객체 중첩구조를 가지고 알아서 판단)
  3. 클라이언트가 요청한 url에 따라 breadcrumb 동적 렌더

초기 데이터로 사용될 대략적인 객체구조와, 최종적으로 출력하고싶은 대략적인 html 렌더링 결과는 다음과 같습니다.

https://jsfiddle.net/baddobby/tzmge52o/78/

어찌어찌 엄청 별의별 코드를 더럽고 장황하게 쓰고 몇번이고 고친 끝에 저런 객체구조에서 글로벌네비게이션 메뉴바는 뽑았고…

breadcrumb에 쓸 자신의 직계 조상은 배열로 뽑았는데요.

이제 자신의 형제와 직계조상별 형제를 뽑는것까지 해야할 생각을 하니 막막하네요…

이런걸 간단히 해결할수 있는 패키지라던지, 참고할만한 자료같은것들 있을까요?