๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

1. Express๋ž€?

  • Node.js๋กœ ์„œ๋ฒ„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ
  • ๋ผ์šฐํŒ…๊ณผ ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์—„์ฒญ๋‚˜๊ฒŒ ์•ˆ์ •์ ์ด๋‹ค.โ€‹

์›น ํ”„๋ ˆ์ž„ ์›Œํฌ: ์›น ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด, HTTP ์š”์ฒญ, ์‘๋‹ต, ๋ผ์šฐํŒ…, HTML Templating ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํˆด์ด๋‹ค.

๋ผ์šฐํŒ…: HTTP ์š”์ฒญ URL์— ํ•ด๋‹นํ•˜๋Š” ์•Œ๋งž์€ ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ

 

2. Express ์„ค์น˜

$ npm install express
$ npx express-generator my-web

express-generator

- ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
- ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ดํ›„์—” ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— npx๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ๋œ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

  • app.js: Express.js์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํŒŒ์ผ
  • bin/www: Express.js ์‹คํ–‰ ๋ถ€๋ถ„ ๋‹ด๋‹น, ํฌํŠธ์™€ ์‹คํ–‰ ์˜ค๋ฅ˜ ๋“ฑ์„ ์ •์˜
  • package.json: ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์ •์˜
  • public: ์ฝ”๋“œ๋ฅผ ํ†ตํ•˜์ง€ ์•Š๊ณ , ์ง์ ‘ ์ œ๊ณต๋˜๋Š” ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ
  • routes: ๋ผ์šฐํŒ… ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ
  • views: HTML Template ๋””๋ ‰ํ† ๋ฆฌ

 

3. Express ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ

 

app ๊ฐ์ฒด๋Š” Express.js์˜ ๊ธฐ๋Šฅ์„ ๋‹ด์€ ๊ฐ์ฒด๋กœ, Express.js์˜ ๋ชจ๋“  ๋™์ž‘์€ app ๊ฐ์ฒด์— ์ •์˜๋œ๋‹ค.

const express = require("express")
import express from "express

app.listen()์€ http ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋‹ค.

const app = express();

// localhost:4000๋กœ ์„œ๋ฒ„์— ์ ‘์†
app.listen(4000)

jsํŒŒ์ผ์„ ์‹คํ–‰ํ•ด express ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

$ node app.js

// package.json
"scripts":{ "start":"node app.js" }
$ npm start

 

๋ฐ˜์‘ํ˜•