ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Node.js/Node.js ์‹ค์Šต

sementic url ์ ์šฉํ•ด๋ณด๊ธฐ

๋Œ•๋Œ•์ด๋ฐœ๐Ÿพ 2018. 10. 10. 19:05


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 ๋ฐฉ์‹์„ ํƒํ•˜๋ฉด ์ข‹์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ