study/spring | java

[Timeline Service] 타임라인 서비스 만들기 4. 메모 작성 (writePost)

_드레 2021. 6. 6. 12:31

1. 작성한 메모 불러오기

let contents = $('#contents').val();

 

 

2. 올바르게 입력되었는지 확인하기

        function isValidContents(contents) {
            if (contents == '') {
                alert('내용을 입력해주세요');
                return false;
            }
            if (isValidContents(contents) == false) {
                return;
            }

isValidContents 로 확인했을 때, 타당하지 않으면(false) 그냥 return 해버림. 

 

 

 

3. 익명의 username 만들기

(문자열 길이 수를 받아 랜덤한 문자열 생성하기)

        function genRandomName(length) {
            let result = '';
            let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
            let charactersLength = characters.length;
            for (let i = 0; i < length; i++) {
                let number = Math.random() * charactersLength;
                let index = Math.floor(number);
                result += characters.charAt(index);
            }
            return result;
        }
let username = genRandomName(10);

*Math.random() ? 

 

 

4. 전달할 data를 JSON으로 변환 

let data = {'username': username, 'contents': contents};

 

 

5. POST /api/memos 에 data를 전달하기 

	 $.ajax({
                type: "POST",
                url: "/api/memos",
                contentType: "application/json", // JSON 형식으로 전달함을 알리기
                data: JSON.stringify(data),
                success: function (response) {
                    alert('메시지가 성공적으로 작성되었습니다.');
                    window.location.reload();
                }
            });

$.ajax ▷ jQuery를 이용

 type: "POST"  ▷ post 방식으로 데이터 전달

data ▷ (ARC에서의 body) JSON.stringify ? 아래에 ▼

contentType ▷ 제약 있으니까 문자열로 보내긴 하는데 이거 사실 JSON이야 를 알려줌

success: function (response) ▷ 문자열 생성해서 데이터가 성공적으로 들어왔을때 서버의 응답을 response에 넣어주겠다는 약속 


▼ JSON.stringify ? 

 

JavaScript 값이나 객체를 JSON 문자열로 변환 (stringify -> string이 되도록 만든다.)

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify


 

여기까지 하고 메모를 작성해보면, 성공적으로 작성된다는 알림이 뜸. 

근데 조회가 안된다. 메모는 성공적으로 작성이 됐지만 불러와서 표시해주는 html이 없어서 그렇다.

고거는 다음 글에