npm i express
const express = require('express')
const app = express()
const port = 3000
app.get('/', function (req, res) { // http method, 라우팅, 콜백함수 순서로 구성
res.send('Hello World') // 응답에 hello world를 담아 보내겠다
})
app.listen(port) // 듣고 있는 포트 번호
실행은 index.js에 만든 파일일 때 node index.js
특정 라우터로 들어갔을 때 html, json을 반환해보자.
const express = require('express')
const app = express()
const port = 3000
// html 전송
app.get('/cat', function (req, res) {
res.send('<h1>Hello World</h1>')
})
// json 전송
app.get('/dog', function (req, res) {
res.json({ 'sound': '멍멍' }) // send랑 보이는 모습은 같지만 json으로 전달하면 명시적이고 효율적으로 전달 가능
})
app.listen(port)
request에 정보가 담긴 경우 params, query를 이용해 알 수 있음 (변수로 받는 방식).
const express = require('express')
const app = express()
const port = 3000
// params
app.get('/user/:id', function (req, res) {
const { id } = req.params
res.json({ 'userId': id })
})
//query
app.get('/user/:id', function (req, res) {
const { query } = req
console.log(query) // localhost/user/hello?age=12&name=world 일 때 { age: '12', name: 'world' }
})
app.listen(port)
post의 경우 req의 body에 값이 담김.
/sound/:name에 들어갔을 때 알맞는 동물 소리 보여주기
const express = require('express')
const app = express()
const port = 3000
app.get('/user/:name', function (req, res) {
const { name } = req.params
if(name === 'dog') {
res.json({ '멍멍' })
} else if(name === 'cat') {
rres.json({ '야옹' })
} else {
res.json({ '알 수 없음' })
}
})
app.listen(port)
만약 프론트 쪽에서 name의 입력을 받는 input을 만든다 하면 다음과 같은 형태가 될 수 있음.