sementic url μ μ©ν΄λ³΄κΈ°
node js 곡λΆλ₯Ό νλ©΄μ μ΄λ°μ sementic urlμ ννλ₯Ό 곡λΆν΄λ³΄μμ΅λλ€.(http://bubobubo003.tistory.com/21?category=779547) μ½λ©μ νμ λΌμ°ν° λ°©μ(?) μΌλ‘λ§ νλ€λ³΄λ app.jsνμΌμλΌμ°ν°λ κΈ°νκΈμμ μΌλ‘ λμ΄λκ³ μ°κ΄μ΄ μλ νμ΄μ§λ₯Ό νλνλ λΌμ°ν°λ₯Ό λ€ λ§λλ건 μ’ μλλΌκ³ μκ°μ΄ λ€μ΄μ μλ©ν± urlμ μ΄μ©νμ¬ μΉνμ΄μ§μ μ μ©μ ν΄λ³΄μμ΅λλ€. μ΄λ° μν©μ κ°μ ν΄λ³΄κ² μ΅λλ€.
μ΄λ° κ²μνμ΄ μλλ°(λ¬Όλ‘ μ΄λ κ² νμ ν κ²μνμ μκ² μ§λ§..) ν΄λΉ μμ±κΈλ‘ λ€μ΄κ°μ λ urlμ λΌμ°ν°λ‘ νλνλ λ€ μμ±νλ €λ©΄κ²μκΈμ κ°μλ§νΌ app.get()μ ν΅ν΄μ ν μλ μμ κ²μ λλ€. κ·Έλμ νμ¬ commuityλΌλ 첫λ²μ§Έ url λ€λ‘ 'κ·μΉμ±μ΄ μλ λ¬Έμλ μ«μκ° λ€μ΄κ°λ©΄ μ’κ² λ€' λΌκ³ μκ°μ΄ λ€μλλ°μ μ΄λ°μμΌλ‘ λ§μ΄μ£
num1μ΄λΌλ κΈμ μ€μ λ‘ μμ±λμ΄μλ λ°μ΄ν°μ λλ€. urlμ 보면 commuity url λ€λ‘ /22 λΌλ μ«μκ° λ€μ΄κ° κ²μ λ³Ό μ μλλ°μ urlλ§ λ³΄κ³ λ commuity νμ΄μ§μ μλ 22λ²μ§Έ κΈ? μ λλ‘ ν΄μμ΄ κ°λ₯ν©λλ€.
μ λ κΈ°μ‘΄μ commuity λΌμ°ν°λ₯Ό μ΄λ°μμΌλ‘ μμ±νμμ΅λλ€.
1 2 3 4 5 6 7 8 9 10 | app.get('/commuity',function(req,res){ board.boardLoadFunction(function(result){ var jsonStr = JSON.stringify(result); if(result.length==0) res.render('commuity',{data:0}) else res.render('commuity',{data:jsonStr}) }) }); | cs |
λ€λ₯Έκ±΄ λ€ κ·Έλ λ€μΉκ³ commuityλΌλ νμ΄μ§λ₯Ό λ λλ§ νκ² μ£ κΈ°ν λ€λ₯Έ λ³μλ€μ κ°μΈμ μΈ μμ μΌλ‘ μΈν΄ λ€μ΄κ° κ²μ λλ€. κ·Έλ¬λ©΄ κ²°κ³Όμ μΌλ‘λ localhost:3000/commuity λΌλ νμ΄μ§λ‘λ§ μ μμ΄ κ°λ₯ν κ²μ λλ€. κ·Έλ¬λ©΄ κΈ νλνλλ νμ΄μ§κ° λ§λ€μ΄μ ΈμΌνλλ° κΈ°λ³Έμ μΌλ‘ κ²μν κΈμ λκ°μ νμ΄μ§μ μ λͺ©κ³Ό λ΄μ©λ§ λ€λ₯Έ ννμΌ κ²μ λλ€. κ·Έλμ μΆκ°μ μΌλ‘ sementic urlνμμ λ§λ€κΈ°μν λΌμ°ν°λ₯Ό νλ λ λ§λ€μ΄μ€λλ€.
1 2 3 4 5 6 7 8 9 | app.get('/commuity/:id',function(req,res){ var id = req.params.id; models.Board.findAll({ where: {'id':id} }).then(function(result){ var jsonObj = JSON.stringify(result) res.render('commuity_detail',{data:jsonObj}) }) }) | cs |
κΈ°μ‘΄μ λΌμ°ν°μ μ£Όμ λ€μ /:id λΌλ ννλ‘ μΆκ°λμλλ° μ¬κΈ°μλ μ«μ κ°μ λ°λΌμ λ€λ₯Έ λ°μ΄ν°λ₯Ό 보μ¬μ£Όλ €κ³ ν©λλ€.
[ commuity.pug ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $(document).ready(function(){ var data = !{data} var len = Object.keys(data).length var tbody = document.getElementById('tbody'); var len = 1 if(data==0) len = 1 else{ len = Object.keys(data).length tbody = document.getElementById('tbody'); for(var i=0;i<len;i++){ tbody.innerHTML += "<th>"+data[i].name+"</th>"+"<th><a id=link"+i+" href=''>"+data[i].subject+"</a></th>" document.getElementById("link"+i).setAttribute('href','commuity/'+data[i].id) } } }); | cs |
μ½λμ μ λΆκ° μλλΌ μ’ κ°λ μ±μ΄ λ¨μ΄μ§λλ° μ΄μ¨λ μ€μν λΆλΆμ setAttribute λΆλΆμ λλ€. aνκ·Έμ href κ°μ λ³κ²½ν΄μ£Όλλ°commuity μ£Όμ λ€λ‘ νΉμ μ«μ κ°μ κ°κ²λ©λλ€. μλ₯Όλ€λ©΄ http://localhost:3000/commuity/20 κ³Ό κ°μ΄ λ§μ΄μ£ κ²μνμ κΈμ΄ μ¬λ¬κ°μ΄λ€λ³΄λ λ°λ³΅λ¬Έλ μ°κ³ μ΄ λ°μ΄ν°λ€μ μ DBμμ λ½μμ°λ ν°λΌ μ½λκ° λ°±μλ νμΌμ΄λ μ½κ° 볡μ‘νκ² μ½νμμ΅λλ€. μλ¬΄νΌ setAttributeλ‘ μΈν΄ κ°κ°μ κ²μκΈλ€μ sementic url ννμ λ§ν¬ κ°μ κ°κ² λ©λλ€.
κ·Έλ κ²λλ©΄ app.js νμΌμμ app.get('/commuity/:id',function(req,res){ μ΄ λΆλΆμΌλ‘ λ€μ΄μ€κ² λκ² μ£ commuityλΌμ°ν°μμλ commuity νμ΄μ§λ₯Ό νΈμΆνλ€λ©΄ sementic url λΌμ°ν°μμλ commuity_detail νμ΄μ§λ₯Ό
λ λλ§νκ³ μμ΅λλ€. κ·Έλ°λ° URLμ£Όμλ localhost:3000/commuity_detail μ΄ μλλΌ
localhost:3000/commuity/22 μ κ°μ΄ ννμ΄ λμ£ commuity νμ΄μ§μμ νΉμ κ°μ λ°λΌ λ€λ₯Έ λ°μ΄ν°λ₯Ό
μ ν νμ¬ λ³΄μ¬μ£Όκ² λλ κ²μ λλ€.
보μλ©΄ κ°μ URL νμμ λ€μ λκ°μ html νμ΄μ§ νΌμ μ°λλ° μ«μ κ°μ λ°λΌμ λ€λ₯Έ λ°μ΄ν° λ΄μ©μ κ°κ² ν΄μ£Όλ κ²μ
λ³Ό μ μμ΅λλ€. λκ°μ νΌμ λ΄μ©λ§ λ°λλ νμμ κ°μ§ λ sementic url λ°©μμ ννλ©΄ μ’μ λ― ν©λλ€.