리셋 되지 말자

[express] 루트 페이지 작성, pretty url 본문

NodeJS/생활코딩

[express] 루트 페이지 작성, pretty url

kyeongjun-dev 2020. 9. 21. 17:48

express 설치 후, 루트 페이지 작성

express 설치 후에, 지금까지 만들었던(생활코딩 nodejs-mysql)것을 express로 재가공(?) 시작한다.

 

  • main.js
const express = require('express')
const app = express()
const port = 80
const topic = require('./lib/topic');

var db = require('./lib/db');
var template = require('./lib/template');

//get은 route, routing
app.get('/', (req, res) => {
    db.query('SELECT * FROM topic', function (error, topics) {
        if (error) throw error;
    
        var description = 'Hello, Node.js';
        var title = 'Welcome';
        var list = template.list(topics);
        var html = template.html(title, list, `<h2>${title}</h2>${description}`, `<a href="/create">create</a>`);
        res.send(html);
    });
    
});

루트 페이지만 나오도록 하였다. 바뀐 부분은, 원래 topic 템플리의 home 함수가 response.end(html)로 페이지 정보를 client에 전송했다면, 지금은 app.get 함수에 있는 db 쿼리함수의 콜백 함수 내에서 처리한다.

 

pretty url(clean url, semantic url)

url로 라우팅을 할 수 있도록 지원을 하는데, 공식 홈페이지의 (expressjs.com/en/guide/routing.html)에서 'route parameters'를 검색하면 된다.

  • 테스트 코드
app.get('/page/:pageId', (req, res) =>{
    console.log(req.params);
    res.send(req.params);
});

 

  • 결과

'localhost/page/아무거나'로 접속하면 위와같이 쌍따옴표의 항목에 입력된 값을 key값으로 하는 객체가 반환된다. 21을 입력했으니 key값이 pageId이고, value값이 21인 객체가 출력되는 모습이다.

'NodeJS > 생활코딩' 카테고리의 다른 글

[express] 미들웨어 - compression  (2) 2020.09.23
[express] 미들웨어 - body parser  (0) 2020.09.23
[NodeJS] SQL Injection  (2) 2020.09.19
[NodeJS] 출력에 대한 보안  (0) 2020.09.14
path 보안  (0) 2020.09.14
Comments