-
글쓴이글
-
2021년 12월 14일 13:36 #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 서버에서 없애면 수정잘됩니다
근데 이미지를 받아서 이미지도 수정해야하는 기능을 만들고싶은데
무슨문제가있는건지 . . 아니면 다른방법은 또없나궁금합니다 . .
2021년 12월 14일 14:32 #21948
김범우참가자문제는 multer 를 미들웨어식으로 사용을 해야하는데 넣지못한 잘못으로
해결했습니다 . .
궁금한게있습니다
사용이 가능한걸로알고있습니다 근데 form 에서는 input 에 type="file"형식으로
name='img' 랑 서버에서 multer 미들웨어식으로 이름맞추면 되는데
ajax 으로도 enctype:"multipart/form-data"
사용을하려면 ejs 에서 는 data: 에다가 이미지 를 어떻게 넣어서
서버에서는 어떻게 받는지 궁금합니다 똑같이 요청.file 로 받는건가요 ?
-
글쓴이글
- 답변은 로그인 후 가능합니다.