
π― λΌμ°ν μ ν΅ν΄ νμΌμ λΆλ¦¬νκ³ , κ° apiκ° μ°κ²°λ μ μλλ‘ userIdλ₯Ό νμ©ν©λλ€.
λΌμ°ν (Routing) μ΄λ?
ν΄λΌμ΄μΈνΈ μμ²μ μ²λ¦¬ν μ μ ν κ²½λ‘λ₯Ό μ°Ύμ μλ΅μ λ°ννλ κ²μ λλ€.
πproject-root
βββ πroutes
β βββ πusers.js
β βββ πchannels.js
βββ πapp.js
βββ πpackage.json
π€ μ νμΌμ λΆλ¦¬ν κΉ?
- μ½λμ κ°λ μ±
- μ μ§λ³΄μ μ©μ΄
- νμ₯μ±
app.js
const express = require('express');
const app = express();
app.listen(7777);
const userRouter = require('./routes/users');
const channelRouter = require('./routes/channels');
app.use('/', userRouter);
app.use('/channels', channelRouter);
app.use('/', userRouter); β / κ²½λ‘ μ΄νμμ users.jsμ λΌμ°νΈλ₯Ό μ¬μ©ν©λλ€.
app.use('/channels', channelRouter); β /channels μ΄νμμ channels.jsμ λΌμ°νΈλ₯Ό μ¬μ©ν©λλ€.
routes/users.js
const express = require('express');
const router = express.Router();
router.use(express.json());
let db = new Map();
router.post('/join', ...)
router.post('/login', ...)
router
.route('/users')
.get(...)
.delete(...)
module.exports = router;
express.Router(); λ‘ κ°μ²΄λ₯Ό μμ±ν ν λΌμ°ν°λ₯Ό λ΄λ³΄λΌ μ μκ² ν©λλ€. routes/channels.js
const express = require('express');
const router = express.Router();
router.use(express.json());
let db = new Map();
let id = 1;
router
.route('/')
.post(....)
.get(...);
router
.route('/:id')
.get(...)
.put(...);
module.exports = router;
express.Router(); λ‘ κ°μ²΄λ₯Ό μμ±ν ν λΌμ°ν°λ₯Ό λ΄λ³΄λΌ μ μκ² ν©λλ€. μ±λ μμ± : POST /channels
request : body ( channelTitle, userId )
cf. userIdλ μλ ν€λμμ λ°μμΌ νμ§λ§, μ°μ μ μμ² λ°λμμ ν¨κ» μ λ¬λ°λλ‘ κ΅¬νν©λλ€.
response : 201 Created ${channelTitle}λ μ±λμ μμν©λλ€. -> μ±λ κ΄λ¦¬ νμ΄μ§
μ±λ μμ : PUT /channels/:id
request: URL (id), body(channelTitle)
response : 200 Ok μ±λλͺ
μ΄ μ±κ³΅μ μΌλ‘ μμ λμμ΅λλ€. κΈ°μ‘΄${} => μμ ${}
μ±λ κ°λ³ μμ : DELETE /channels/:id
request: URL(id)
response : 200 Ok μμ λμμ΅λλ€. => λ©μΈ νμ΄μ§
μ±λ μ 체 μ‘°ν : GET /channels
request: body(userId)
response : 200 Ok μ±λ μ 체 λ°μ΄ν° list, json array
μ±λ κ°λ³ μ‘°ν : GET /channels/:id
request: URL(id)
response : μ±λ κ°λ³ λ°μ΄ν°
λ‘κ·ΈμΈ : POST /login
request: body(userId, pwd)
response: ${name}λ νμν©λλ€ β λ©μΈ νμ΄μ§λ‘ μ΄λ
νμ κ°μ
: POST /join
request: body(userId, pwd, name)
response: ${name}λ νμν©λλ€ β λ‘κ·ΈμΈ νμ΄μ§λ‘ μ΄λ
νμ κ°λ³ μ‘°ν : GET /users
request: body(userId)
cf. userIdλ μλ ν€λμμ λ°μμΌ νμ§λ§, μ°μ μ μμ² λ°λμμ ν¨κ» μ λ¬λ°λλ‘ κ΅¬νν©λλ€.
response: id, name
νμ κ°λ³ νν΄ : DELETE /users
request: body(userId)
cf. userIdλ μλ ν€λμμ λ°μμΌ νμ§λ§, μ°μ μ μμ² λ°λμμ ν¨κ» μ λ¬λ°λλ‘ κ΅¬νν©λλ€.
response: ${name}λ λ€μμ λ λ΅κ² μ΅λλ€. β λ©μΈ νμ΄μ§λ‘ μ΄λ
express λΌμ°ν
λ°©λ²μ λ°°μμ νμΌλ€μ΄ κΉλνκ² λΆλ¦¬λ κ±° κ°μμ κΉλν΄μ§ κ² κ°μ κΈ°λΆμ΄ μ’μμ΅λλ€! 