๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป DEV/Javascript & NodeJS

[Javascript] ExpressJS (Intro)

by vodkassi 2021. 6. 5.
728x90

โœจ Express๋ž€?

Nodejs ๋ฅผ ์œ„ํ•œ ์›น ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

 

โœจ ๊ธฐ๋ณธ ์‚ฌ์šฉ ์•ˆ๋‚ด

 

์„ค์น˜: npm install express 

 

์„œ๋ฒ„ ์—ฐ๊ฒฐ: 

 

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
res.send('Hello World!')
}) // '/' ๋กœ ๋ผ์šฐํŒ… ๋˜์ง€ ์•Š๋Š” url ์— ๋Œ€ํ•œ get ์š”์ฒญ์— ๋Œ€ํ•ด์„œ๋Š” ์ „๋ถ€ 404 ์—๋Ÿฌ๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค

app.listen(port, () => {
console.log(Example app listening at http://localhost:${port})
})

 

์›น ์•ฑ ๋ผˆ๋Œ€ ๊ตฌ์„ฑ : npx express-generator

 

โœจ ๋ผ์šฐํŒ… (Routing)

 

์•ฑ์ด ํŠน์ • endpoint (url) ์œผ๋กœ ์˜จ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. 

 

app.METHOD(PATH, HANDLER) 
// method = http method
// path = url path (์ฟผ๋ฆฌ ์ŠคํŠธ๋ง ๋ฏธํฌํ•จ, ์ •๊ทœํ‘œํ˜„์‹ ํ™œ์šฉ ๊ฐ€๋Šฅ)
// handler = ๋ผ์šฐํŠธ๊ฐ€ ์ผ์น˜ํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜

app.get('/', function (req, res) {
  res.send('Hello World!')
}) // get, post, put ๋“ฑ http ์š”์ฒญ์— ๋Œ€ํ•ด ๊ฐ€๋Šฅ

 

app.all() ๋ผ์šฐํŒ… ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • path ๋กœ ์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•ด ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ด์ค€๋‹ค.

 

app.all('/secret', function (req, res, next) {
console.log('Accessing the secret section ...')
next() // pass control to the next handler
})

 

โœจ Middleware (๋ฏธ๋“ค์›จ์–ด)

 

์•ฑ ๋‚ด์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต, ๊ทธ๋ฆฌ๊ณ  next() ํ•จ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค. next() ํ•จ์ˆ˜๋Š” ์ด์–ด์ง€๋Š” middleware ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๋ฏธ๋“ค์›จ์–ด๋Š” ๋ณดํ†ต Application-level, Router-level, Error-handling, Built-in, Third-party ๋กœ ๋‚˜๋‰œ๋‹ค.

 

Application-level ์˜ˆ์‹œ: app.use()

const cors = require('cors');
app.use(cors()) // ๋ชจ๋“  ์š”์ฒญ, ์‘๋‹ต์— ๋Œ€ํ•ด cors() ํ—ค๋” ์‚ฌ์šฉ  
// ์—ฌ๊ธฐ์„œ cors() ๋Š” Third-party Middleware ์ด๋‹ค.

 

Router-level ์˜ˆ์‹œ: router.use()

let router = express.Router()

router.use(someFunction)

 

๋ณด๋„ˆ์Šค ) Static ํŒŒ์ผ ์“ฐ๊ธฐ

 

CSS ๋˜๋Š” javascript ์™€ ๊ฐ™์€ ์ •์ ์ธ (static) ํŒŒ์ผ์€ ๋ณดํ†ต ์•ฑ์˜ public ํŒŒ์ผ์— ์ €์žฅ๋˜๋ฉฐ, ๋‚ด์žฅ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ํŒŒ์ผ์— ๋ฐ”๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

app.use(express.static('public'))
// http://localhost:3000/js/app.js ์ ‘๊ทผ ๊ฐ€๋Šฅ    

//๋˜๋Š” path prefix ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ  
app.use('/static', express.static('public'))  
// [http://localhost:3000/static/js/app.js](http://localhost:3000/static/js/app.js) ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

โœจ Expressjs ์˜ ์žฅ๋‹จ์ 

์žฅ์ 

- Javascript ๋กœ ์ž‘์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ๋ฌธ๋ฒ• ์—†์ด ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์˜จ๊ฐ– API ์™€์˜ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ์ 

- ๋ณด์•ˆ ๋‹จ๊ณ„๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ฐธ๊ณ  ์ž๋ฃŒ

Express ๊ณต์‹ ๋ฌธ์„œ

Pros and cons of express

'๐Ÿ’ป DEV > Javascript & NodeJS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Javascript] ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น  (0) 2021.06.05
[Javascript] JSON  (0) 2021.06.05
[Javascript] Fetch API  (0) 2021.05.27
[Javascript] Async ํ•จ์ˆ˜์™€ Await  (0) 2021.05.27
[Javascript] Promise (ํ”„๋กœ๋ฏธ์Šค)  (0) 2021.05.27

๋Œ“๊ธ€