add 와 같이 edit 버튼을 만들었다.

이제 edit 버튼이 기능을 할 수 있도록 구현을 해볼 것이다.

우선, 버튼을 누르면, add 에서 작성하는 폼과 유사한 폼이 나와야한다.

add.jade 와 똑같은 edit.jade 를 복사하고, edit 의 형식대로 작성한다.

(edit.jade)

article
      - rid = encodeURIComponent(topic['@rid'])
      form(action='/topic/'+rid+'/edit' method='post')
        p
          input(type='text' name='title' placeholder='title' value=topic.title)
        p
          textarea(name='description' placeholder='description')
            =topic.description
        p
          input(type='text' name='author' placeholder='author' value=topic.author)
        p
          input(type='submit')

이 코드를 통해서, add 와 유사한 폼 형태에 데이터에 대한 정보가 입력되어있는 형식까지 작성했다.

(edit.jade 의 형식)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/490d690a-cc08-452a-93af-985556362ce2/Untitled.png

이제 데이터를 보여주는 것까지는 완료했고, 이제는 '제출'버튼을 누르면, post로 orientdb에 보내서 수정을 해야한다.

해당 라우터를 작성한다.

app.post('/topic/:id/post', function(req,res){
	var sql = "UPDATE topic SET title=:t,description=:d,author=:a WHERE @rid=:rid";
	var id = req.params.id;
	var title = req.body.title;
	var desc = req.body.description;
	var author = req.body.author;
	db.query(sql.{
	params:{
		t:title,
		d:desc,
		a:author,
		rid:id
		}
	}).then(function(topics){
		res.redirect('/topic/'+encodeURIComponent(id));
	});
});