본문 바로가기
  • 실행력이 모든걸 결정한다
Node.js/Express

[Express] Get, Post 데이터 받기 / 동적 URL 처리

by 김코더 김주역 2021. 7. 26.
반응형

1. Get 데이터 받기

express 객체의 get 메소드를 사용해야 한다.

const express = require('express')
const app = express()

app.get('/get_test', function(req,res){
    var id = req.query.id;
    var password = req.query.password;
    res.send(`your id is ${id} and your password is ${password}`);
})

app.listen(3000, ()=>console.log('Example app listening on port 3000!'))

req.query는 querystring을 받는다.

 

 

결과

 

 

2. Post 데이터 받기

express 객체의 post 메소드를 사용해야 한다.

const express = require('express')
const bodyParser = require('body-parser')
const app = express()

app.use(bodyParser.json()) // parse application/json
app.use(bodyParser.urlencoded({extended: false})) // parse application/x-www-form-urlencoded

app.post('/post_test', function(req,res){
    var id = req.body.id;
    var password = req.body.password;
    res.send(`your id is ${id} and your password is ${password}`);
})

app.listen(3000, ()=>console.log('Example app listening on port 3000!'))

req.body는 XML, Multi Form, JSON 등의 데이터를 받는다.

req.body를 사용하기 위해 body-parser이라는 미들웨어로 데이터를 파싱했다.

그리고, express의 use() 메소드는 미들웨어 함수를 로드 시켜주는 역할을 한다.

 

 

결과

post 방식으로 데이터를 전송하기 위해 html 파일을 다음과 같이 생성했다.

<!doctype html>
<html>
    <head>
        <title>send</title>
    </head>
    <body>
        <form action="http://localhost:3000/post_test" method="POST">
            <input type="text" name="id">
            <input type="password" name="password">
            <input type="submit" value="전송">
        </form>
    </body>
</html>

 

Post 데이터도 성공적으로 전달 받았다.

 

 

 

3. 동적 URL 처리

URL에 변수를 포함해야 할 때는 변수 앞에 ":"를 붙이면 된다. 

const express = require('express')
const app = express()

app.get('/user/:id', function(req,res){
    res.send(req.params);
})

app.listen(3000, ()=>console.log('Example app listening on port 3000!'))

req.params는 주소에 포함된 변수를 받는다.

 

 

결과

 

 

 

4. 정리

  • req.params : 주소에 포함된 변수를 받음
  • req.query : URI의 querystring을 받음
  • req.body : XML, Multi Form, JSON 등의 데이터를 받음

 

반응형

댓글