TIL - 21.08.06 πŸ‘¨β€πŸ’» - express.js

μ„±ν›ˆΒ·2021λ…„ 8μ›” 6일
0

TIL

λͺ©λ‘ 보기
48/59
post-thumbnail

TIL - 21.08.06 πŸ‘¨β€πŸ’»

express.js

μ„€μΉ˜

npm i express --save둜 μ„€μΉ˜ν•˜κ³ ,

js νŒŒμΌμ„ λ§Œλ“  ν›„

const express = require('express');
const server = express();

server.get('/', (req, res) =>{
	res.send('Hello!')
})

server.listen(port, () => {
	console.log('server has started')
})

μš”λŸ°μ‹μœΌλ‘œ μž‘μ„± ν•œ λ’€, node -.jsλ₯Ό 터미널에 μ‚¬μš©ν•΄μ£Όλ©΄ μ„œλ²„κ°€ μ‹œμž‘λœλ‹€.

기본적인 λ©”μ†Œλ“œ μ²˜λ¦¬μ™€ λΌμš°νŒ…

Routing은 URI 및 νŠΉμ •ν•œ HTTP μš”μ²­ λ©”μ†Œλ“œμΈ νŠΉμ • μ—”λ“œν¬μΈνŠΈμ— λŒ€ν•œ ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ— μ„œλ²„κ°€ μ‘λ‹΅ν•˜λŠ” 방법을 κ²°μ •ν•˜λŠ” 것을 λ§ν•œλ‹€.

app.METHOD(PATH, HANDLER)

  • app은 express의 μΈμŠ€ν„΄μŠ€μ΄λ‹€.
  • METHODλŠ” GET, POST λ“±μ˜ HTTP μš”μ²­ λ©”μ†Œλ“œμ΄λ‹€.
  • PATHλŠ” μ„œλ²„μ—μ„œμ˜ κ²½λ‘œμ΄λ‹€.
  • HANDLERλŠ” 라우트(μ„œλ²„μ—μ„œ 보낸 μš”μ²­μ˜ PATH와 METHOD)κ°€ μΌμΉ˜ν•  λ•Œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜μ΄λ‹€.

ex)

const express = require('express');
const server = express();

server.post('/post' (req, res) => {
  
	res.status(201).send('Posted!')
})

/post 경둜둜 포슀트 μš”μ²­μ΄ λ“€μ–΄μ™”μ„λ•Œ μ„œλ²„κ°€ 'Posted!'λΌλŠ” λ¬Έμžμ—΄μ„ 보내쀀닀.

응닡 λ©”μ†Œλ“œ

응닡 λ©”μ†Œλ“œλŠ” 응닡을 ν΄λΌμ΄μ–ΈνŠΈλ‘œ μ „μ†‘ν•˜κ³  μš”μ²­ - 응닡 μ£ΌκΈ°λ₯Ό μ’…λ£Œν•  수 μžˆλ‹€.
μš”μ²­ - 응닡 μ£ΌκΈ°μ—μ„œ 응닡 λ©”μ†Œλ“œκ°€ μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ€ λ°©μΉ˜λœλ‹€.(κ·Έλƒ₯ 계속 μš”μ²­μƒνƒœ)

λŒ€ν‘œμ μΈκ±° λͺ‡κ°œλ§Œ μ†Œκ°œν•˜μžλ©΄,

λ©”μ†Œλ“œμ„€λͺ…
res.end()응닡 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•œλ‹€.
res.send()λ‹€μ–‘ν•œ μœ ν˜•μ˜ 응닡을 μ „μ†‘ν•œλ‹€.
res.json()JSON 응닡을 μ „μ†‘ν•œλ‹€.
res.redirect()μš”μ²­μ˜ 경둜λ₯Ό μž¬μ§€μ •ν•œλ‹€.
res.render()보기 ν…œν”Œλ¦Ώμ„ λ Œλ”λ§ν•œλ‹€.
res.sendStatus()응닡 μƒνƒœ μ½”λ“œλ₯Ό μ„€μ •ν•œ ν›„ ν•΄λ‹Ή μ½”λ“œλ₯Ό λ¬Έμžμ—΄λ‘œ ν‘œν˜„ν•œ λ‚΄μš©μ„ 응닡 λ³Έλ¬ΈμœΌλ‘œμ„œ μ „μ†‘ν•œλ‹€.

express.Router

express.Router 클래슀λ₯Ό μ΄μš©ν•˜λ©΄ λͺ¨λ“ˆμ‹μœΌλ‘œ λ§ˆμš΄νŒ… κ°€λŠ₯ν•œ ν•Έλ“€λŸ¬λ₯Ό λ§Œλ“€ 수 μžˆλ‹€.
이λ₯Ό λ―Έλ‹ˆ 앱이라고 λΆ€λ₯΄λŠ” κ²½μš°λ„ μžˆλ‹€.

router.js ν™•μž₯자의 νŒŒμΌμ„ λ§Œλ“€κ³ 

const express = require('express');
const router = express.Router();

router.get('/', (req, res) =>{
	res.send('router loaded!')
})
router.get('/somewhere', (req, res) => {
	res.send('requesting Reading somewhere')
})

module.exports = router;

λ₯Ό μž‘μ„±ν•œ ν›„ ν•΄λ‹Ή λΌμš°ν„°λ₯Ό μ„œλ²„.jsμ—μ„œ λΆˆλŸ¬μ™€ μ‚¬μš©ν•œλ‹€.

const routing = require('λΌμš°ν„°.js 경둜/router')

server.use('/λΌμš°νŒ…ν•˜κΈ° μ›ν•˜λŠ” path', routing)

TO DO πŸ”₯

  • express.js μˆ™λ ¨
  • μ•Œκ³ λ¦¬μ¦˜
  • κ°„λ‹¨ν•œ ν† μ΄ν”„λ‘œμ νŠΈ

Retrospect 🧐

μ΅μŠ€ν”„λ ˆμŠ€.
처음 λ§Œλ‚¬μ„λ•ŒλŠ” 뭐 이런 λ†ˆμ΄ λ‹€ μžˆμ§€ μ‹Άμ—ˆμ§€λ§Œ, λ„€μ΄ν‹°λΈŒ λ…Έλ“œλ³΄λ‹€κ°€ 이 μ΅μŠ€ν”„λ ˆμŠ€ 라이브러리λ₯Ό λ³΄λ‹ˆκΉŒ μ„ λ…€λ‹€.

쿼리둜 apiλžμ‹œκ³  μ‚¬μš©ν•˜λ˜κ²Œ λΈŒλΌμš°μ €κ°€ μ•Œμ•„μ„œ ν•΄μ£ΌλŠ”κ²Œ μ•„λ‹ˆλΌ 일일이 κ΅¬ν˜„ν•˜λŠ”κ±° μ˜€λ‹€λ‹ˆ.
κ°œλ°œμžλŠ” λŒ€λ‹¨ν•˜κ΅¬λ‚˜.

Reference πŸ™‡

https://expressjs.com/ko/guide/routing.html

profile
μ–΄λ–»κ²Œ 이걸 ν’€μ–΄λ‚Ό 수 μžˆμ„κΉŒ

0개의 λŒ“κΈ€