본문 바로가기

WEB

Node.js로 웹서비스 만들기 3일차

글 같은걸 작성할 때

관습적으로 POST 요청을 쓴다고 한다.

app.post('/add', function(req, res){
	res.send('전송완료');
});

여기에서 /add는 자기가 정한 경로이다.

 

POST요청으로 서버에 데이터를 전송하고 싶으면

body-parser 라이브러리를 설치한다.

터미널에 npm install body-parser

 

그리고 server.js 상단에 아래 코드 추가

// server.js
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended : true}));

 

(그냥 문법이니 외워서 쓰자)

 

 

간단한 폼을 만들어서 테스트 해본다

//write.html

<form action="/add" method="POST">
	<div class="form-group">
		<label for="todo">Todo</label>
		<input type="text" id="todo" class="form-control" name="title">          
	</div>

	<div class="form-group">
		<label for="dday">Due date</label>
		<input type="text" id="dday" class="form-control" name="date">          
	</div>
        
	<button type="submit" class="btn btn-primary">Submit</button>
</form>

 

 

body-parser 라이브러리 설치 이후 테스트 해보면

// server.js
app.post('/add', function(req, res){
    res.send('전송완료');
    console.log(req.body);
});

 

인풋창에 입력한 값이 콘솔에 아래와 같이 찍히게 된다.

{ title: 'name이 title인 인풋의 value', date: 'name이 date인 인풋의 value' }

 

원하는 정보만 뽑아서 쓸 때

//server.js
app.post('/add', function(req, res){
    res.send('전송완료');
    console.log(req.body.title); // 요청의 body에 있는 이름이 title 이라는 인풋의 값
    console.log(req.body.date);    
});

콘솔에 값만 나오게 된다.