TIL_ Update(crud's U)

glowing0512_·2021년 7월 14일
0

항해99_TIL

목록 보기
5/17
post-thumbnail
  1. form 의 기능
  2. reatd 기능

<이 전>
update 링크를 생성 ( update를 누르러때 들어오는 url 생성함)
< 목표 >
update를 클릭했을 때 보여지는 화면 구성
(현재는 Not found가 뜸 )

update 화면

    1. form  2.read기능 ; 수정할 data가 필요  
      
// 아래의 코드는 id값이 존재할때의 같은 코드이다(detail은 당근 수정!)
} else if (pathname === '/update') {
  fs.readdir('./data', (err, filelist) => {
    console.log('update 화면')

    // 본문
    fs.readdir('./data', (err, filelist) => {
      var list = templateList(filelist);
      fs.readFile(`data/${queryData.id}`, 'utf8', function (err, description) {
        var title = queryData.id;
        var template = templateHTML(title, list,
          `
          <form action="/update_process" method="post"> 
          <input type="hidden" name="id" value="${title}">  
          <p><input type="text" name="title" value="${title}" placeholder="title"></p>
            <p>
            <textarea placeholder="description" name="description">${description}</textarea>
            </p>
            <p>
            <input type="submit" />
            </p>
          </form>
          `,
          `<a href="/create">create<a/> <a href="/update?id=${title}">update</a>`);
        response.writeHead(200);
        response.end(template);
      });

서브밋을 했을 때, update_create로 수정할 정보를 전송할건데, 그 때에 어떤 파일을 수정할 것인지를 알 수 있어야 한다.

이때, title로 전송한 정보를 바탕으로 하면 문제가 생김
why? 사용자는 제목을 수정할 수 잇으니까!!
==> sol)사용자가 수정하는 정보와 우리가 수정하고자 하는 파일을 구분해서 전송해야 한다!!
(input태그를 하나 더 추가한다. )
< input type="text" name="id" value="title">이렇게,name="id"로이름을다르게준다!===>위의CSS(title)값을사용자가변경할수있어야하나?아닝!보여줄필요??없다.<inputtype="hidden"name="id"value="{title}"> 이렇게 ,name ="id"로 이름을 다르게 준다! ===> 위의 CSS(title)값을 사용자가 변경할수있어야 하나? 아닝! 보여줄필요?? 없다. < input type="hidden" name="id" value="{title}">
submit을 했을 때, hidden으로 되어있는 컨트롤의 id이름으로 전송된다! 그래서 수정할 파일의 이름을 받을 수 있다.


결과 : id는 원래 이름으로 들어가기에 기존 파일이름은 변경되지 않고 전달됨.
// title 값은 변경되는 값이 들어간다.

Q. 어떻게 id="id"로 주는데, 이걸 어떻게 받는거지??

profile
Coder가 아닌 Engineer를 향해서.

0개의 댓글