https://opentutorials.org/course/3370
생활코딩님의 Express.js강의를 참고하였습니다.
1. 수정폼
기존 Node.js 에서 사용하던 방식에서 파라미터를 받는 방식, response.send를 바꿨다.
//수정폼
app.get('/update/:pageId',function(request,response){
fs.readdir('./data', function(error, filelist){
var filteredId = path.parse(request.params.pageId).base;
fs.readFile(`data/${filteredId}`, 'utf8', function(err, description){
var title =request.params.pageId;
var list = template.list(filelist);
var html = template.HTML(title, list,
`
<form action="/update_process" method="post">
<input type="hidden" name="id" value="${title}">
<p><input type="text" name="title" placeholder="title" value="${title}"></p>
<p>
<textarea name="description" placeholder="description">${description}</textarea>
</p>
<p>
<input type="submit">
</p>
</form>
`,
`<a href="/create">create</a> <a href="/update?id=${title}">update</a>`
);
response.send(html);
});
});
});
2.수정 POST
기존 Node.js에서 작성했던 POST하고 달라진부분은 없다.
//수정 포스트
app.post('/update_process',function(request,response){
var body = '';
request.on('data', function(data){
body = body + data;
});
request.on('end', function(){
var post = qs.parse(body);
var id = post.id;
var title = post.title;
var description = post.description;
fs.rename(`data/${id}`, `data/${title}`, function(error){
fs.writeFile(`data/${title}`, description, 'utf8', function(err){
response.writeHead(302, {Location: `/?id=${title}`});
response.end();
})
});
});
});
반응형
'BackEnd > Express.js' 카테고리의 다른 글
[Express.js] 삭제 기능 (0) | 2024.09.09 |
---|---|
[Express.js] 페이지 생성 (1) | 2024.09.04 |
[Express.js] 상세페이지 구현 (0) | 2024.09.04 |