간단하게 큰 그림을 얘기하자면, 먼저 처음 데이터는 백엔드에서 modelquery를 이용해 해당 리스트에 필요한 모든 정보를 불러온다. 등록 버튼을 만들어서 팝업창을 띄어도 되지만, 만들 때 등록 페이지는 따로 있는게 나을거 같다는 의견을 토대로 만들었기에 등록 페이지는 따로 구현을 했다.
테이블에서 중요한것은 등록 > 리스트 > 수정 > 삭제 > 페이지네이션 > 검색 > 정렬 > 페이지갯수 > 엑셀 다운
이 순인거 같다.( 주관적인 의견이며 개인적으로 개발할 때 저 순서대로 하는것이 제일 편했고, 엇갈리는것이 없었다. )
1. CRUD 작업은 node.js 백엔드를 타서 실행되도록 하였다.
2. 페이지네이션은 Object를 사용하였으며, 클라이언트쪽에서 가능하도록 하였다.
3. 검색과 정렬은 먼저 어떻게 검색할 지, 정렬할 지 옵션을 변수로 만들어 백엔드에 넘겨주고 원하는 데이터를 받아와
Ajax로 부분만 바뀌도록 하였다.
4. 페이지 갯수는 클라이언트쪽에서 원하는 갯수만큼 보여줄 수 있도록 설정하였다.
5. 엑셀 다운은 클라이언트에서 내가 보고있는 테이블들만 엑셀로 담아주도록 하였다.
그림으로 나타내면 다음과 같다.
먼저 전체 리스트를 받아오거나, search또는 sort를 할 경우
HTML script에 object를 선언해준 후
var pagingObject = new Object({name : "Device", url : "/ajax/device_list", CNU : "{{company.CNU}}", array : [], sort : "CA", page : 0, postNum : 10, pageNum : 5, startpage : 0, endpage : 0, search: "", searchtext : "", searchdate : ""});
백엔드에 옵션에 대한 정보를 주고, 백엔드에서 쿼리문을 이용해 조회하며, 클라이언트의 object 내용들을 바꿔준다.
다음은 클라이언트 쪽에서 페이지네이션을 하거나 페이지의 갯수를 조정해줄 경우
ajax로 가져온 데이터들을 조리있게 바꿔서 리스트의 내용들을 교체해준다.
'Node.js - JQuery' 카테고리의 다른 글
Node.js , JQuery | 테이블 만들기 | 데이터 등록(2) (0) | 2021.09.14 |
---|---|
Node.js , JQuery | 테이블 만들기 | 데이터 등록(1) (0) | 2021.09.14 |
Node.js , JQuery | 테이블 만들기 | 화면 구성 (0) | 2021.09.14 |
Node.js , JQuery | 회원탈퇴 (0) | 2021.09.14 |
Node.js , JQuery | Nunjucks 템플릿 엔진 사용 (0) | 2021.09.14 |