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

home2 게시판 Node.js, Express 게시판 이미지 업데이트 질문입니다 ..

이미지 업데이트 질문입니다 ..

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

    김범우
    참가자

    TypeError: Cannot read properties of undefined (reading 'filename') 에러질문입니다..

    서버코드입니다

    app.put("/changing", function (요청, 응답) {
      db.collection('product').updateOne(
        { _id: parseInt(요청.body.idindex) },
        {
          $set: {
            title: 요청.body.title,
            description: 요청.body.description,
            date: 요청.body.date,
            img:요청.file.filename
          },
        },function(err,result){
          if (err) {
            return 응답
              .status(400)
              .send("Error!!"); /* 필수적으로 응답을 해줘야 page멈춤현상이없다 */
          }else{
            console.log(result);
            응답.redirect('/update');
          }
        }
      );
    });

    ejs 코드입니다

    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Change page</title>
        <!-- JQuery import -->
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <!-- Bootstrap import -->
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
            crossorigin="anonymous"></script>

        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
            crossorigin="anonymous"></script>
        <!-- Bootstrap CSS -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
            integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous" />
        <!-- CSS Import -->
        <link rel="stylesheet" href="/public/main.css">
    </head>
    <div class="container">
        <ul class="list-group text-center">
            <form action="/changing?_method=PUT" method="post"  enctype="multipart/form-data" >
                <li class="list-group-item">
                    <h4 class="text" >할일 제목 : <%=data.title %>
                        <input type="text" name="title">
                    </h4>
                    <h4 class="text">상품설명 : <%=data.description %>
                        <input type="text" name="description">
                    </h4>
                    <p>상품 등록 날짜 :<%=data.date %>
                        <input type="date" name="date">
                        <input type="text" name="idindex" value="<%=data._id %>">
                    </p>>
                    " width="50%" height="200px">
                    <input type="file" name="file2">
                    <button type="submit"class="btn btn-primary">수정하기</button>
                </li>
            </form>
        </ul>
    </div>

    <body>
    </body>

    </html>

    이미지 때문에 그런거같은데 게시판 에 글을 써어 insert 하게 할때는 실행이잘되는데

    다른페이지에서 수정 하여 업데이트하려고 하는중에 저런 에러가 계속뜹니다 . .

    enctype="multipart/form-data" ejs 에서 삭제하고

    img:요청.file.filename 서버에서 없애면 수정잘됩니다

     

    근데 이미지를 받아서 이미지도 수정해야하는 기능을 만들고싶은데

    무슨문제가있는건지 . .  아니면 다른방법은 또없나궁금합니다 . .

    #21948

    김범우
    참가자

    문제는 multer 를 미들웨어식으로 사용을 해야하는데 넣지못한 잘못으로

    해결했습니다 . .

    궁금한게있습니다

     

     

    사용이 가능한걸로알고있습니다 근데 form 에서는 input 에 type="file"형식으로

    name='img' 랑 서버에서 multer  미들웨어식으로 이름맞추면 되는데

    ajax 으로도 enctype:"multipart/form-data"

    사용을하려면 ejs 에서 는 data: 에다가 이미지 를 어떻게 넣어서

    서버에서는  어떻게 받는지 궁금합니다 똑같이 요청.file 로 받는건가요 ?

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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