NodeJS

[NodeJS] - app.post() : POST 방식을 위한 body-parser 미들웨어

Riucc 2018. 11. 10. 13:29

○ app.post() : POST 방식을 위한 body-parser 미들웨어 

 

express 에서 app.post()

post 방식으로 데이터를 전송 시 처리하는 방법이 바로 'body-parser' 미들웨어이다


설치> npm install body-parser


var bodyParser = require('body-parser');

// 사용자가 요청 시 form 데이터는 아래를 사용

app.use(bodyParser.urlencoded({extend : false}));

// 사용자가 요청 시 json 방식은 아래를 사용

app.use(bodyParser.json());


// form.ejs (form.html 로 만든 후 ejs로 이름 변경


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>

<body>
<form action="/form_receiver" method="post">
<p><input type="text" name="title"></p>
<p><textarea name="desc"></textarea></p>
<button type="submit">전송</button>
</form>
</body>
</html>


// main.js


var express = require('express');
var app = express();

// ejs 파일 불러와서 보여주기 위한
var ejs = require('ejs');
app.set("views", __dirname); // ejs 파일 가져올 폴더 지정(프로젝트명) 및 ejs 관련 설정
app.set("view engine", "ejs");
app.engine("ejs", ejs.renderFile);

// post 방식 데이터 처리 위한 body-Parser, form 데이터 처리
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));

app.get('/form', function(req, res){
res.render('form.ejs'); // ejs(html)파일 보여줄 때 이렇게 render() 사용
});


app.post('/form_receiver', function(req, res){
var title = req.body.title; // 이렇게 요청한 데이터를 받아온다 req.body.form에서의 name
var desc = req.body.desc;
res.send("제목 : " + title + "\n" + "내용 : " + desc); // 사용자에게 지정한 값을 응답해줌
});

app.listen(3000, function(){
console.log('Listening on Port 3000');
});