form.jade

 

doctype html

html head meta(charset = 'utf-8') body form(action='/form_receiver' method='post') p input(type='text' name='title') p textarea(name='description') p input(type='submit')


jade 템플릿에서는 태그의 속성 표시 문법으로 ()안에 속성을 추가한다. 

form(action='/form_receiver' method='post')



Express api 문서를 보면 post방식으로 전달된 데이터는 정의되어있지 않기 때문에

그 데이터를 사용하려면 body-parser 또는 multer 라는 미들웨어를 설치 해야한다.

body-parser 모듈을 애플리케이션에 붙이게되면 모든 요청은 먼저 미들웨어를 통과한 다음 라우터가 동작한다.

 

var express = require('express');

var app = express(); var bodyParser = require('body-parser'); //post방식 데이터를 사용하게해주는 bodyParser 모듈 로드 app.use(bodyParser.urlencoded({ extended: true })); //bodyParser모듈을 애플리케이션 객체에 붙이는코드 app.locals.pretty = true; //템플릿 엔진 코드에 들여쓰기 적용해주는 코드 app.set('view engine','jade'); //템플릿 엔진을 세팅하고 express와 연결하는 코드 app.set('views','./views'); //정적인 파일이 위치할 디렉터리를 지정하는 코드 app.get('/form',function(req,res){ // /form 요청을 받는 라우터 res.render('form'); //form.jade 파일을 랜더링해 사용자에게 보여주는코드 }); app.post('/form_receiver',function(req,res){ //post 방식의 요청을 받는 라우터 var title = req.body.title; var description = req.body.description; res.send(title+' '+description); }); app.listen(3000,function(){ console.log('Connected 3000 port'); });


cmd창에서 패키지에 body-parser 이라는 모듈을 설치하고

var bodyParser = require('body-parser');  모듈을로드한다. 이모듈은 post방식의 데이터를 사용할수 있게해준다.

app.use(bodyParser.urlencoded({ extended: true })); 이코드는 body-parser모듈을 애플리케이션에 붙이는코드이다.

이제 모든 요청은 미들웨어인 body-parser를 거쳐서 라우터로 오게된다.

get방식의요청은 app.set() post방식의요청은app.post() 으로 받는다.

get방식의 데이터는 req.query.name 으로 가져오지만 post방식의 데이터는 req.body.title 이런식으로 가져온다.









'Node.js' 카테고리의 다른 글

파일업로드 / multer  (0) 2017.02.27
EJS 템플릿 엔진 / include  (0) 2017.02.26
URL을 이용한 get방식 데이터 전달 / 사용  (0) 2017.02.26
jade 템플릿 엔진  (0) 2017.02.26
정적페이지 / 동적페이지 표현  (0) 2017.02.26

+ Recent posts