TODO 앱을 직접 만들면서 배우는 node.js / express / bootstrap / jquery
    • 01
      서문
    • 누구를 위한 실습인가
      활용하는 법
      실습을 위해 필요한 것
    • 02
      간단한 ToDo 리스트 만들기
    • 실습 목표
      프로젝트 시작하기
      웹 서버 만들기 - app.js
      라우팅 정의 - index.js
      ToDo 목록 구조
      라우팅 정의 - todo.js
      ToDo 리스트 홈페이지 구성
      템플릿 - index.ejs
      서버로 요청 보내기
      목록 가져오기 - todo.js
      새 ToDo 추가하기 - todo.js
      ToDo 완료/삭제하기 - todo.js
      정리
      도전 문제
    새 ToDo 추가하기 - todo.js
    배우기
    02 간단한 ToDo 리스트 만들기
    새 ToDo 추가하기 - todo.js

    다음은 새로운 ToDo를 목록에 추가하는 작업입니다.

    새로운 ToDo 입력창이 form 으로 구성되어 있기 때문에 여러 속성을 주어 HTML Form 자체를 이용할 수도 있지만, 본 예제에서는 jQuery를 다양하게 이용해보기 위해 jQuery 함수를 이용합니다.

    추가 기능의 의도하는 동작 시나리오는 다음과 같습니다.

    1. 입력창에 새로운 할 일을 입력합니다.
    2. 추가 버튼을 누릅니다.
    3. 목록에 새로운 할 일이 추가됩니다.

    2번을 구현하기 위해서 $(element).click() 함수를 이용합니다. 이것은 선택한 요소를 클릭했을 때 어떤 행동을 할 것인지 정의합니다. 이 곳에서 add 요청을 보내면 추가 버튼을 클릭했을 때 입력한 새로운 할 일을 추가하도록 서버에 요청할 수 있습니다. 

    추가 버튼 DOM 요소를 잡기 위해 다음과 같은 셀렉터를 이용합니다.

    $('.form-inline button')

    .은 클래스를 의미하고, 두 규칙 간에 띄어쓰기가 있다면 왼쪽 규칙의 자식 중에 오른쪽 규칙이라는 의미입니다.

    지난 강의에서 만들었던 list 요청은 GET 요청이었으나 add 요청은 정보를 서버에 보내서 저장하기 때문에 POST 요청을 보내야 합니다. 그리고 jQuery.ajax 함수는 기본 요청의 종류가 GET이므로 따로 POST 요청임을 설정해주어야 합니다. 이는 설정에서 method 값으로 줄 수 있습니다.

    또한 어떤 할 일이 추가되었는지 정보를 보내야 하기 때문에 객체 형태로 contents를 보냅니다. 정보에 해당하는 설정 키는 data입니다. 입력한 할 일을 가져오기 위해서 $(element).val() 함수를 이용합니다. 이 함수는 선택한 요소의 value 속성을 가져옵니다. 요소가 input 일 경우, 입력한 내용을 가져옵니다.

    3번을 구현하기 위해서 목록 가져오기 - todo.js에서 만들었던 list 요청을 다시 사용합니다. 같은 코드를 2번 쓸 경우, 유지 및 보수에 어려움이 있으므로 함수화합니다. list 요청을 get_list 함수로 정의한 후, DOM이 모두 준비되었을 때 호출합니다. 그리고 add 요청의 콜백 함수(success)로 get_list 함수를 전달합니다.

    실습 내용

    새로운 할 일을 추가하도록 서버에 요청합니다.

    POST 요청을 이해하고, jQuery.ajax 함수를 활용합니다.

    질문하기