ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Node.js/Node.js ๊ณต๋ถ€

4. express (1)

๋Œ•๋Œ•์ด๋ฐœ๐Ÿพ 2018. 3. 26. 00:25


์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

Express๋Š” ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ผ๋ จ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์—ฐํ•œ Node.js ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.


express ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๋Œ€๋กœ ๋ฐฐ์šฐ๋ ค๋Š” ๋ชฉ์ ์€ ์•„๋‹ˆ๊ณ  ์ด๋Ÿฐ ๊ฒƒ๋„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ผ๋Š” ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๊ฐ€๋Š” ์˜๋ฏธ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.


์ผ๋‹จ ์„ค์น˜ ๋ฐฉ๋ฒ•๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž.


$ npm install express --save

๋ผ๊ณ  ์ปค๋งจ๋“œ์— ์น˜๊ฒŒ๋˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์น˜๋Š” ์™„๋ฃŒ๋‹ค.  (์ด๋Ÿฌํ•œ ์ปค๋งจ๋“œ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฑฐ์— ๋Œ€ํ•œ ์ „์ œ์กฐ๊ฑด์€ npm init๊ฐ€ ๋˜์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค. ) 

express์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๋ฉ”์ธ ํŒŒ์ผ๋ช…์€ app.js ์ด๋ฉฐ ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ๋ช…์„ ํ•ด๋„ ์ƒ๊ด€์€์—†์ง€๋งŒ ๊ด€ํ–‰์ ์œผ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.


helloworld ์˜ˆ์ œ
var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

์ด์ „ ๊ธ€์—์„œ๋„ ๊ณ„์† ํ•˜๋Š” ์˜ˆ์ œ์ธ๋ฐ express๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.


require๋ฅผ ์ด์šฉํ•ด์„œ express ๋ชจ๋“ˆ์ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ express ๋ณ€์ˆ˜๊ฐ’์— ์ €์žฅํ•˜๊ณ , express๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด application์„ ๋ฆฌํ„ดํ•˜๋ฏ€๋กœ (๋ฉ”๋‰ด์–ผ์ ์ธ ๋ถ€๋ถ„) ๊ทธ ๊ฐ’์„ app์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.


get ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ ๋›ฐ์–ด์„œ listen๋ถ€๋ถ„์„ ๋จผ์ € ๋ณด๊ฒŒ๋˜๋ฉด 3000๋ฒˆ ํฌํŠธ์— listenํ•˜๊ฒŒ ๋˜๋ฉด callback function์ธ  console.log('Example app listening on port 3000!');

์˜ ๋กœ๊ทธ๊ฐ€ ์ฐํžˆ๊ฒŒ ๋œ๋‹ค. 


๋งˆ์ง€๋ง‰์œผ๋กœ get ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์›น์„œ๋ฒ„์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ์‹์ค‘์— ํ•˜๋‚˜์ธ๋ฐ GET๋ฐฉ์‹๊ณผ POST๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์ผ๋‹จ ๊ทธ๋Ÿฐ ๊ฐœ๋…์ด ์žˆ๋‹ค๋Š” ๊ฑธ๋กœ๋งŒ ๋„˜์–ด๊ฐ€๊ณ  ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” get๋ฐฉ์‹์œผ๋กœ home(root)์— ์ ‘์†ํ–ˆ์„ ๋•Œ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ์ „๋‹ฌ๋œ function์ด ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. 


ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด localhost:3000์œผ๋กœ ์ ‘์†ํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋•Œ Hello World์˜ ๋ฌธ์žฅ์„ ์ถœ๋ ฅํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค.



app.get('/login', function (req, res) {
  res.send('Login Please!');
});

์œ„์™€๊ฐ™์ด ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ๊ฒŒ ๋˜๋ฉด localhost:3000/login ์˜ ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ”์„ ๋•Œ Login Please! ์˜ ๋ฌธ์žฅ์ด ์ถœ๋ ฅ๋˜๊ฒŒ ๋œ๋‹ค.

get์ด๋ผ๊ณ  ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ '๋ผ์šฐํ„ฐ' ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ๋ผ์šฐํ„ฐ๋ฅผ ์ด์šฉํ•˜๋Š” ์ž‘์—…์„ '๋ผ์šฐํŒ…' ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์–ด๋–ค ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ๊ธธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด get์ด ํ•˜๋Š” ์—ญํ• ์ด๋‹ค.




Express์˜ ๋ฒ”์œ„๊ฐ€ ๋ฐฉ๋Œ€ํ•ด์„œ ์ด ๋’ค์—์„œ๋„ Express์— ๋Œ€ํ•œ ๋‚ด์šฉ์œผ๋กœ ํฌ์ŠคํŒ…์„ ํ•  ์˜ˆ์ •์ด๋‹ค. ์ผ๋‹จ ๊ธฐ์กด์— 

require('http') ๋ฅผ ์ด์šฉํ•ด์„œ http.createServer๋ฅผ ์ด์šฉํ•ด์„œ ์œ„์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ,

๊ตณ์ด ์ง€๊ธˆ ๋‹ค๋ฅธ์ ์„ ๊ผฝ์ž๋ฉด ๋‚ด๊ฐ€ root ์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•˜๋Š”๊ฑด์ง€ ์•„๋‹ˆ๋ฉด login์„ ํ•˜๋Š” ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋Š”๊ฑด์ง€ 

ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋Š” ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๊ตฌ๋ถ„์„ ํ•œ๋‹ค๋Š” ์ •๋„? 

๊ณ„์† ํฌ์ŠคํŒ…์„ ํ•˜๋ฉด์„œ ์œ ์šฉํ•˜๋‹ค๋ฉด ๊ณ„์† ์“ฐ๊ฒ ๊ณ  ์•„๋‹ˆ๋ฉด ์•ˆ์จ๋„ ๋ ํ…Œ๊ณ .. ๋ฌดํŠผ ๊ทธ๋ ‡๋‹ค!

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ