-
글쓴이글
-
2022년 3월 15일 18:25 #29567
윤준호참가자일단 edit.ejs 코드입니다.
<%- include('nav.html') %>
<div class="container mt-3">
<form action="/edit?_method=PUT" method="POST">
<div class="form-group">
<label>할일</label>
<input type="text" value = "<%= post._id %>" name="id" style="display : none;">
<input value = "<%= post.제목 %>" type="text" class="form-control" name="title">
</div>
<div class="form-group">
<label>날짜</label>
<input value = "<%= post.날짜 %>" type="text" class="form-control" name="date">
</div>
<button type="submit" class="btn btn-outline-secondary">수정하기</button>
</form>
</div>server.js 코드입니다.
const methodOverride = require('method-override')
app.use(methodOverride('_method'))app.get('/edit/:id', function(요청, 응답){
db.collection('post').findOne({ _id : parseInt(요청.params.id)}, function(에러, 결과){
응답.render('edit.ejs', { post : 결과 })
})
})app.put('/edit', function(요청, 응답){
db.collection('post').updateOne( {_id : parseInt(요청.body.id) }, {$set : { 제목 : 요청.body.title , 날짜 : 요청.body.date }}, function(){
console.log('수정완료')
응답.redirect('/list')});
})
이렇게 하고 localhost8000/edit/24에서 수정하기(혹은 submit) 버튼을 누르면
Cannot PUT /edit 이라는 에러가 나오네요...
콘솔로 에러를 확인해보니 POST http://localhost:8080/edit?_method=PUT 404 (Not Found)
라는 에러가 나오는데 edit.ejs의 <form action="/edit?_method=PUT" method="POST">이 부분 문제인가요?
강의 보고 똑같이 쳤는데 뭐가 문젠지 모르겠습니다.
2022년 3월 15일 20:15 #29578
윤준호참가자참고로
app.get('/edit/:id', function(요청, 응답){
db.collection('post').findOne({ _id : parseInt(요청.params.id)}, function(에러, 결과){
응답.render('edit.ejs', { post : 결과 })
})
})여기서 console.log(결과);를 찍어보면
{ _id: 24, '제목': '알바가기', '날짜': '3.9' } 이렇게 나오는 걸 보면 여기까지는 문제가 없는 듯 싶습니다.
2022년 3월 15일 21:30 #29583
codingapple키 마스터const methodOverride = require('method-override')
app.use(methodOverride('_method'))이거가 app.put 보다 위에있나요 아니면 ejs 파일이 더있거나 저장안되어있거나 그럴수도요
2022년 3월 15일 23:15 #29595
윤준호참가자늦은시간 감사합니다.
위에 적어뒀습니다. 아마 두번째 문제같은데
Ejs파일들을 제가 강의보다 더 많이 만들어봤습니다. (그냥 아무의미 없는 페이지지만 복습겸.,)
이게 문제일까요?
그렇다면 어찌 해결해야할까욤...?
2022년 3월 16일 14:07 #29633
윤준호참가자찾아보니 더 edit.ejs파일은 하나밖에 없네용...
강의를 2번 더 돌려봤는데도 똑같은 문제가 일어나는데.... 답답하네용 어찌해야 할까요 ㅠ?
2022년 3월 16일 15:08 #29643
윤준호참가자<form action="/edit?_method=PUT" method="POST"> 이 부분을
<form action="/edit?_method=PUT" method="POST">로 바꿔서 해보란 말씀이신가요?
이렇게 해도 POST http://localhost:8080/edit?_method=POST 404 (Not Found) 라는 에러가 뜨네요 ㅜㅜ
후 하나의 문제로 이렇게 너무 많이 질문드려 죄송합니다 ㅜㅜ..
-
글쓴이글
- 답변은 로그인 후 가능합니다.