Express

  • Light HTTP web Framework
  • npm install express

์„œ๋ฒ„ ์ƒ์„ฑ, ์‹œ์ž‘

var express = require('express');
var app = express();
app.listen(3000);
  • HTTP ๋ชจ๋“ˆ ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ
var http = require('http');
var express = require('express');
var app = express();
http.createServer(app).listen(3000);

Express MiddleWare

  • ์š”์ฒญ ๋ถ„์„, ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฏธ๋“ค์›จ์–ด๋กœ ๊ตฌ์„ฑ
  • ์ค‘๊ฐ„์— ๊ปด๋„ฃ๋Š”๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์ด๋‚˜ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ชฉ์ 
  • app.use(MiddleWare)

routing

  • ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฏธ๋“ค์›จ์–ด๋กœ ๋ถ„๋ฐฐ
// Method
app.get('/',function(req,res){});
app.post('/',function(req,res){});
app.get('/user',function(req,res){});
app.post('/post',function(req,res){});

์š”์ฒญ ๋ถ„์„

  • req.query : ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด
  • req.path : ์š”์ฒญ URL ์ค‘ ๊ฒฝ๋กœ
  • req.params : URL์˜ ํŒŒ๋ผ๋ฏธํ„ฐ
  • req.cookie : ์š”์ฒญ ๋ฉ”์‹œ์ง€ ๋‚ด Cookie(Cookie Parser ํ•„์š”)
  • req.body : ์š”์ฒญ ๋ฉ”์‹œ์ง€ ๋‚ด ๋ฐ”๋”” ๋ถ„์„(Body Parser ํ•„์š”)

์‘๋‹ต

  • `res.json()โ€œ
  • res.redirect()
  • res.render()
  • res.send()
  • res.sendStatus()
  • res.status()
  • res.download()

Middleware

Framework

  • connect
  • Express
  • ์ž‘์€ ๋‹จ์œ„ ๋ชจ๋“ˆ
  • ์š”์ฒญ๊ณผ ์‘๋‹ต ์ฒ˜๋ฆฌ ํ•จ์ˆ˜ ํ˜•ํƒœ
  • ํ•˜๋‚˜์˜ Middleware์—์„œ ์š”์ฒญ ๋ถ„์„ ์‘๋‹ต ๋งˆ๋ฌด๋ฆฌ
  • ์—ฌ๋Ÿฌ Middleware๋ฅผ ๊ฒจ์ฒ˜์„œ ์š”์ฒญ ์‘๋‹ต ๊ฐ€๋Šฅ

Middleware mount

  • app.use(path,function)
  • Default Path value : /
  • ๋‹ค๋ฅธ Middleware๋กœ ๋„˜์–ด๊ฐ€๊ธฐ : app.use(path,function(req,res,next){ next() })
  • ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

Middleware stack

  • app.use(function1, function2)
  • next()๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ๋‹ค์Œ function์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

๋ณดํ†ต Middleware ์ˆœ์„œ

  • favicon ์ฒ˜๋ฆฌ
  • Logging
  • Static file
  • Service Middleware
  • Handle Error

Static file Middleware

  • express.static(root, option)
  • etag : etag ์‚ฌ์šฉ ์—ฌ๋ถ€, ๊ธฐ๋ณธ true
  • lastModified : lastModified ํ—ค๋” ์‚ฌ์šฉ, ๊ธฐ๋ณธ true
  • maxAge : ๊ธฐ๋ณธ๊ฐ’ 0
  • index : ๊ธฐ๋ณธ๊ฐ’ index.html

๋‹ค์ˆ˜ ๊ฐ€๋Šฅ

  • app.use(express.static('public'));
  • app.use(express.static('files'));

๊ฐ€์ƒ ๊ฒฝ๋กœ ์„ค์ •

  • app.use('/static',express.static('files'))