โจ 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 ์์ ํธํ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฏธ๋ค์จ์ด๋ฅผ ์ฝ๊ฒ ๋ง๋ค๊ณ ํ์ฉํ ์ ์๋ค.
๋จ์
- ๋ณด์ ๋จ๊ณ๋ฅผ ๋ช ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ
'๐ป 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 |
๋๊ธ