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

home2 게시판 React 게시판 post요청 undefined 질문드립니다

post요청 undefined 질문드립니다

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

    이창민
    참가자
    쎈세 하기와같이 코딩시 클라이언트에서 post요청을하면 server측에서 요청한 데이터들이 undefined로 출력되어나옵니다ㅠㅠ
    서버에서 console.log(req.body)로 작성시  {} 출력
    서버에서 console.log(req.body.plan)로 작성시 undefined 출력
    
    --------server.js----------
    
    const express = require("express");
    const bodyParser = require("body-parser");
    const path = require("path");
    const app = express();
    require("dotenv").config();
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(express.static(path.join(__dirname, "비밀_react/build"))); //특정폴더의 파일들을 전송가능
    app.listen(8080, function () {
      console.log("listening on 8080");
    });
    app.get("/", function (req, res) {
      res.sendFile(path.join(__dirname, "비밀/build/index.html"));
    });
    app.post("/contact", function (req, res) {
      console.log(req.body);
      res.send("success"); // 요청이 성공적으로 처리되었음을 클라이언트에게 응답
    });
    
    <!---------client--------------->
    
    import axios from "axios";
    import "./../Contact/Contact.css";
    function Contact() {
      const handleSubmit = async (event) => {
        event.preventDefault();
        const form = event.target;
        const formData = new FormData(form);
        try {
          const data = {
            plan: formData.get("plan"),
            location: formData.get("location"),
            company: formData.get("company"),
            name: formData.get("name"),
            phone: formData.get("phone"),
            mail: formData.get("mail"),
            personnel: formData.get("personnel"),
            budget: formData.get("budget"),
            check: formData.get("check"),
          };
          const response = await axios.post("/contact", data);
          if (response.data === "success") {
            // 요청이 성공적으로 처리되었는지 확인
            alert("성공적으로 전송되었습니다!");
            form.reset();
          } else {
            alert("전송 실패");
          }
        } catch (error) {
          console.error(error);
          alert("전송 실패");
        }
      };
      return (
        <div className="contact-container">
          <p className="contact-title">문의하기</p>
          <p className="contact-paragraphs">
            비밀 <b>문의 남겨주세요</b>
          </p>
          <form onSubmit={handleSubmit} className="form">
            <div>
              <p>플랜선택</p>
              <select required name="plan">
                <option value="" disabled selected>
                  원하시는 플랜을 선택해주세요
                </option>
                <option>노랑</option>
                <option>파랑</option>
                <option>민트</option>
              </select>
            </div>
           (추가 input 생략했습니다)
    
            <button type="submit">매니저에게 전달하기</button>
          </form>
        </div>
      );
    }
    export { Contact };
    
    
    
    
    
    
    		
    	
    #77410

    이창민
    참가자
    혹시 몰라 클라이언트측 전체코드도 끄적여봅니다!
    
    
    import axios from "axios";
    import "./../Contact/Contact.css";
    function Contact() {
      const handleSubmit = async (event) => {
        event.preventDefault();
        const form = event.target;
        const formData = new FormData(form);
        try {
          const data = {
            plan: formData.get("plan"),
            location: formData.get("location"),
            company: formData.get("company"),
            name: formData.get("name"),
            phone: formData.get("phone"),
            mail: formData.get("mail"),
            personnel: formData.get("personnel"),
            budget: formData.get("budget"),
            check: formData.get("check"),
          };
          const response = await axios.post("/contact", data);
          if (response.data === "success") {
            // 요청이 성공적으로 처리되었는지 확인
            alert("성공적으로 전송되었습니다!");
            form.reset();
          } else {
            alert("전송 실패");
          }
        } catch (error) {
          console.error(error);
          alert("전송 실패");
        }
      };
      return (
        <div className="contact-container">
          <p className="contact-title">문의하기</p>
          <p className="contact-paragraphs">
            비밀 <b>문의 남겨주세요</b>
          </p>
          <form onSubmit={handleSubmit} className="form">
            <div>
              <p>플랜선택</p>
              <select required name="plan">
                <option value="" disabled selected>
                  원하시는 플랜을 선택해주세요
                </option>
                <option>노랑</option>
                <option>파랑</option>
                <option>민트</option>
              </select>
            </div>
            <div>
              <p>지역</p>
              <select required name="location">
                <option value="" disabled selected>
                  원하시는 지역을 선택해주세요
                </option>
                <option>서울</option>
                <option>경기</option>
                <option>인천</option>
              </select>
            </div>
            <div>
              <p>회사명</p>
              <input placeholder="회사명을 입력해주세요" name="company"></input>
            </div>
            <div>
              <p>담당자명</p>
              <input placeholder="담당자님 성함을 입력해주세요" name="name"></input>
            </div>
            <div>
              <p>
                담당자 연락처 <span>*</span>
              </p>
              <input
                placeholder="-를 제외한 숫자만 입력해주세요"
                name="phone"
              ></input>
            </div>
            <div>
              <p>담당자 이메일 주소</p>
              <input
                placeholder="담당자님 이메일 주소를 입력해주세요"
                name="mail"
              ></input>
            </div>
            <div>
              <p>
                소속 직원수<span>*</span>
              </p>
              <input placeholder="숫자만 입력해주세요" name="personnel"></input>
            </div>
            <div>
              <p>
                한 달 예산<span>*</span>
              </p>
              <input placeholder="숫자만 입력해주세요" name="budget"></input>
            </div>
            <div className="check">
              <div>
                <input type="checkbox" name="check"></input>
                <p>
                  개인정보 제공동의 <span>*</span>
                </p>
              </div>
              <div>
                <p>보기</p>
              </div>
            </div>
            <button type="submit">전송</button>
          </form>
        </div>
      );
    }
    export { Contact };
     
     
    #77425

    codingapple
    키 마스터
    http부터 풀주소로 입력해서 전송해보거나 
    data 변수 보내기 전에 출력해봅시다 
    
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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