[TIL-백엔드] 3주차 Part3. 나에게 Express란?

반 히·2024년 3월 25일

데브코스

목록 보기
18/58
post-thumbnail

📁 express 설치

📌 'http' vs 'express'

  • http : 웹 서버처럼 활동할 수 있는 모듈. 웹 서버 역할을 하게 만드는 친구. 내장 모듈
  • express 모듈 안에 http가 포함되어 있음
const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)
  • 포트 번호 (port number)
    • ex. 각 회사 체계 서비스 번호 - 1234

📁 express REST API

📌 실습

//express-demo.js 
const express = require('express')
const app = express()

// GET + "/"
app.get('/', function (req, res) {
  res.send('Hello World')
})

// API : GET + "http://localhost:3000/test"
// "TEST SUCCESS"
app.get('/test', function(req, res) {
  res.send('TEST SUCCESS')
})

// API : GET + "http://localhost:3000/test/1"
// "One!!"
app.get('/test/1', function(req, res) {
  res.send('One!!')
})

app.listen(3000)

📌 응용

//express-demo.js 
const express = require('express')
const app = express()

// 서버 셋팅 : 포트 넘버(번호) 3000로 셋팅
app.listen(3000)

// GET + "/"
app.get('/', function (req, res) {
  res.send('Hello World')
})

// API : GET + "http://localhost:3000/test"
// "TEST SUCCESS"
app.get('/test', function(req, res) {
  res.send('TEST SUCCESS')
})

// API : GET + "http://localhost:3000/test/1"
// "One!!"
app.get('/test/1', function(req, res) {
  res.send('One!!')
})

// GET /hello, /bye, /nicetomeetyou
app.get('/hello', function(req, res) {
  res.send('안녕하세요')
})

app.get('/bye', function(req, res) {
  res.send('안녕히 가세요')
})

// "GET 메소드로, '/nicetomeetyou'이 날아오면
// 매개변수로 전달받은 콜백 함수를 호출하겠어." => 서버에 셋팅 
app.get('/nicetomeetyou', function(req, res) {
  res.send('만나서 반갑습니다')
})

📁 객체

📌 객체란?

  • 데이터를 하나씩 X ⇒ 데이터를 모아 모아 덩어리로 보내겠다!
  • "객체"
    ex. "Node.js를 공부해보자. 라는 책"의 데이터 덩어리들
    • 상품명 : Node.js를 공부해보자
    • 상품 가격 : 20000
    • 상품 소개 : 이 책 좋음 왜? 임한비 지음
  • 우리 세상이 객체로 이루어져 있습니다.
  • '주어 자리에 왔을 때 문장이 만들어지면 그건 다 객체다'
    ✏ 따라서 텍스트 말고 자바스크립트 객체로 보내기.

📌 Json이란?

app.get('/products/1', function(req, res) {
  res.send('Node.js를 배워보자 (책)')
  // res.send(20000)
})
  • 이렇게 두 정보를 보내고 싶어도 두 개 보낼 수 없음
  • JavaScript Object Notation (자바스크립트 객체 모양)
    • : 자바스크립트 객체가 어떻게 생겼냐 = 어떤 형태인가
let person = {
	name : "hanbi",
	age : 21
}
//“Node.js를 공부해보자. 라는 책”
// - 상품명 : Node.js를 공부해보자
// - 상품가격 : 20000
// - 상품소개 : 이 책 좋음 왜? 임한비 지음
let nodejsBook = {
	title : "Node.js를 공부해보자",
	price : 20000,
	description : "이 책 좋음 왜? 임한비가 지음"
}
function print(book) {
    console.log(book.title)
    console.log(book.price)
    console.log(book.description)
}

print(nodejsBook)

📌 객체로 보내기

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

// 서버 셋팅 : 포트 넘버(번호) 3000로 셋팅
app.listen(3000)

// GET /hello, /bye, /nicetomeetyou
app.get('/hello', function(req, res) {
  res.json({
    say : '안녕하세요'
  })
})

app.get('/bye', function(req, res) {
  res.json({
    say : '안녕히 가세요'
  })
})

// "GET 메소드로, '/nicetomeetyou'이 날아오면
// 매개변수로 전달받은 콜백 함수를 호출하겠어." => 서버에 셋팅 
app.get('/nicetomeetyou', function(req, res) {
  res.json({
    say : '만나서 반갑습니다'
  })
})
const express = require('express')
const app = express()

// 서버 셋팅 : 포트 넘버(번호) 3000로 셋팅
app.listen(3000)

let nodejsBook = {
	title : "Node.js를 공부해보자",
	price : 20000,
	description : "이 책 좋음 왜? 임한비가 지음"
}

app.get('/products/1', function(req, res) {
  res.json(nodejsBook)
  // res.send(20000)
})
//params-demo.js
const express = require('express')
const app = express()

// 서버 셋팅 : 포트 넘버(번호) 3000로 셋팅
app.listen(3000)

app.get('/products/1', function(req, res) {
    res.json({
        num : 1
    })
})

app.get('/products/2', function(req, res) {
    res.json({
        num : 2
    })
})

app.get('/products/3', function(req, res) {
    res.json({
        num : 3
    })
})
  • 만약 num 값을 1000까지 늘린다면, 이렇게 손으로 일일이 써주기 힘듦 (하드코딩)
  • url에 날라오는 값을 이용...
  • ⇒ products 뒤에 오는 숫자를 변수로 담아서 쓰면 되지 않을까? (하드코딩하지 않고도 사용 가능)
//params-demo.js
const express = require('express')
const app = express()

// 서버 셋팅 : 포트 넘버(번호) 3000로 셋팅
app.listen(3000)

app.get('/products/:n', function(req, res) {
    // products/_ 빈칸에 오는 값을 n이라는 변수에 담아줘 
    res.json({
        num : n
    })
})

  • 오류가 발생함...
//params-demo.js
const express = require('express')
const app = express()

// 서버 셋팅 : 포트 넘버(번호) 3000로 셋팅
app.listen(3000)

app.get('/products/:n', function(req, res) {
    // : => 어? 나한테 URL로 매개변수를 전달해줄 건 가보다 
    // products/_ 빈칸에 오는 값을 n이라는 변수에 담아줘 
    // console.log(req.params)
    // console.log(req.params.n)

    res.json({
        num : req.params.n
    })
})
  • req.paramsparams라는 변수에 네가 담아준 값을 담아올거야..~ 라는 뜻.

0개의 댓글