• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 당근마켓 클론코딩 질문

당근마켓 클론코딩 질문

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #94831

    채민석
    참가자
    (강의에 '저장할꺼'는 animal로 이름설정하였습니다)
    
    
    var animal = {
                                        이름: $('#name').val(),
                                        종: $('#species').val(),
                                        성별: $('#gender').val(),
                                        생년: $('#birth').val(),
                                        이미지: url,
                                    };
                                    db.collection('product')
                                        .add(animal)
                                        .then((result) => {
                                            console.log(result.id); //성공
                                            console.log(animal);
                                            window.location.href = 'index.html';
                                        })
                                        .catch((error) => {
                                            //실패
                                            console.log(error);
                                        });
    구문을 animal 안 이미지 url을 넣기  위해서 아래 구문 안에다가 붙이는
    storageUpload.snapshot.ref
                                .getDownloadURL()
                                .then((url) => {
     
    부분을 똑같이 실행하였는데 그렇게되면 firestore 와 storage에 아무것도 저장이 되지 않는 것같습니다
    이 과정 전에는 잘 저장이 되었습니다. 
    혹시 코드오류가 있을 수 있으니 script부분 보냅니다.
     
            <script>
                const db = firebase.firestore();
                const storage = firebase.storage();
                console.log(new Date());
                $('#send').click(function () {
                    var file = document.querySelector('#image').files[0];
                    var storageRef = storage.ref();
                    var storageSavePath = storageRef.child('image/' + file.name);
                    var storageUpload = storageSavePath.put(file);
                    storageUpload.on(
                        'state_changed',
                        // 변화시 동작하는 함수
                        null,
                        //에러시 동작하는 함수
                        (error) => {
                            console.error('실패사유는', error);
                        },
                        // 성공시 동작하는 함수
                        () => {
                            storageUpload.snapshot.ref
                                .getDownloadURL()
                                .then((url) => {
                                    console.log('업로드된 경로는', url);
                                    var animal = {
                                        이름: $('#name').val(),
                                        종: $('#species').val(),
                                        성별: $('#gender').val(),
                                        생년: $('#birth').val(),
                                        이미지: url,
                                    };
                                    db.collection('product')
                                        .add(animal)
                                        .then((result) => {
                                            console.log(result.id); //성공
                                            console.log(animal);
                                            window.location.href = 'index.html';
                                        })
                                        .catch((error) => {
                                            //실패
                                            console.log(error);
                                        });
                                });
                        }
                    );
    
    
                    // $(`input`).val('');
                });
         
            </script>
    console에도 아무런 error가 없네요ㅠㅠㅠ
    #94842

    채민석
    참가자
    해결 했습니다. input 을 감싸는 div태그가 아닌 form태그로 바꿔서 upload html input들이 requrired하게 적용시키려고 해서
    위에같은 오류가 발생한 것 같습니다.
    #94844

    채민석
    참가자
    혹시 맨위에 해결한 질문과는 별개로 혹시 왜 form으로 해서 input required를 주었을 때 데이터들이 저장이 안되는지 알 수 있을까요?
    <form id="register-form" type="submit" class="container mt-3">
                <input
                    required
                    type="text"
                    class="form-control mt-2"
                    id="name"
                    placeholder="이름" />
                <!-- <textarea class="form-control mt-2" id="content">content</textarea> -->
                <input
                    required
                    type="text"
                    class="form-control mt-2"
                    id="species"
                    placeholder="종" />
                <input
                    required
                    type="text"
                    class="form-control mt-2"
                    id="gender"
                    placeholder="성별" />
                <input
                    required
                    type="text"
                    class="form-control mt-2"
                    id="birth"
                    placeholder="생년월일 ex:1999/07/06" />
                <input required class="form-control mt-2" type="file" id="image" />
                <button type="submit" class="btn btn-danger mt-3" id="send">
                    등록
                </button>
            </form>
    이렇게 input들 required적용을 위해 div를 form으로만 바꿨습니다
     
    #94858

    codingapple
    키 마스터
    폼전송시켜버리면 이미지 업로드가 되기도 전에 새로고침되어서 그런가봅니다 type="submit"도 뭔가 이상합니다
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠