Do it Node.js express를 이용하여 서버 만들기 4편 다양한 미들웨어 사용하기

2018. 3. 14. 20:37javascript/node.js

다양한 미들웨어 사용해보기



오늘은 익스프레스에서 제공하는 다양한 미들웨어를 사용하여 서버에 필요한 기능을 더 쉽게 만들어 보겠다.



static 미들웨어

static 미들웨어는 특정 폴더의 파일들을 특정 패스로 접근할 수 있도록 만들어 줍니다.



var http = require('http'), express = require('express')
var static = require('serve-static')
var path = require("path");
var app = express()

app.use('/',static(path.join(__dirname,'public')))

http.createServer(app).listen(3000,function () {
    console.log('3000 사용')
})


위의 코드와 같이 사용해주면 public이라는 폴더가 / path에도 접근할 수 있다는 것을 의미한다.





코드의 결과와 같이 /public/hi.html 해줄 필요 없이 /hi.html이 가능하게 됐다.




body-parser 미들웨어

post로 요청했을 때 요청 파라미터를 확인할 수 있도록 만들어 둔 것이 body-parser이다. get으로 요청했을 때는 url로 값이 보이지만 post는 보이지 않는 특성이 있다. 만약에 post요청이 들어왔을 때 본문에 있는 요청 파라미터들을 파싱하여 요청 객체의 body 속성에 넣어 주어서 파싱이 가능해집니다.

var http = require('http'), express = require('express'), path = require('path')
var static = require('serve-static'), body = require('body-parser')
var app = express()

app.use(body.urlencoded({extended: false}))
app.use(body.json())
app.use('/',static(path.join(__dirname,'public')))

http.createServer(app).listen(3000,function () {
    console.log("3000에 연결")
})

app.use('/',function (req,res) {
    var id  =  req.body.id
    var pw = req.body.pw

    res.writeHead(200,{'Content-Type':'text/html;charset=utf8'})
    res.write("로그인한 id = "+ id)
    res.write("비밀번호 = "+pw)
    res.end("입니다")
})






req.body.input 태그의 name속성으로 표현할 수 있다.