게시글 수정하기 서버처리
//edit.ejs
<form action="/edit?_method=PUT" method="POST">
<div class="form-group">
<label for="todo">Todo</label>
<input type="hidden" name="id" value="<%= data._id %>">
<input type="text" id="todo" class="form-control" name="title" value="<%= data.제목 %>">
</div>
<div class="form-group">
<label for="dday">Due date</label>
<input type="text" id="dday" class="form-control" name="date" value="<%= data.날짜 %>">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
HTML에서 PUT요청을 할 수 없기 때문에
이를 가능하게 해주는 플러그인
method-override를 설치해 줘야 한다.
서버를 끄고 터미널에
npm install method-override 를 입력한다.
그 다음 server.js에 문구 추가하기
//server.js
const methodOverride = require('method-override');
app.use(methodOverride('_method'));
이렇게 하면
<form action="/edit?_method=PUT" method="POST">
이러한 형태로 PUT요청이 가능하다.
그 다음 서버처리
//server.js
app.put('/edit', function(request, response){
db.collection('post').updateOne({ _id : parseInt(request.body.id) }, {$set : { 제목 : request.body.title, 날짜 : request.body.date}}, function(error, result){
response.redirect('/list'); //수정이 완료된 이후 list 페이지로 이동하기
});
});
콘솔에 request.body를 찍어보면
이렇게 오브젝트 형태로 넘어오게 된다.
'WEB' 카테고리의 다른 글
Node.js로 웹서비스 만들기 19일차 (0) | 2023.03.06 |
---|---|
Node.js로 웹서비스 만들기 18일차 (0) | 2023.03.03 |
Node.js로 웹서비스 만들기 16일차 (0) | 2023.02.22 |
Node.js로 웹서비스 만들기 15일차 (0) | 2023.02.21 |
Node.js로 웹서비스 만들기 14일차 (0) | 2023.02.20 |