백엔드 기초 3-1 ~ 3-2 (Express, 객체, json)

Develop Kim·2024년 8월 31일

programmers

목록 보기
5/40

3 나에게 Express란?

3-1 express 설치, 코드 뜯어보기, 포트 충돌 해결

1️⃣ 'http' VS 'Express'

  • http는 웹서버처럼 활동할 수 있는 내장 모듈
  • Express 모듈 안에 http가 포함되어 있음

2️⃣ 구조의 차이

  • Express를 쓰면서 가독성이 좋아짐
let http = require('http'); // 매개변수로 http 모듈(내장모듈)을 가져와서 http 변수에 정의함

function onRequest(request, response) {
  response.writeHead(200, {'content-Type' : 'text/html'});
  response.write('Hello node.js');
  response.end();
  }

http.createServer(onRequest).listen(8989);
// http 모듈에 createServer 함수에서 할 일을 다 한 다음에
// onRequest 콜백 함수를 실핼 시켜달라고 매개변수로 던진 것
const express = require('express')
const app = express() // app이라는 변수에 express를 호출헤서 app에 담아둠, 쉽게 서버를 담아뒀다고 생각하면 됨

app.get('/'/*http://localhost:3000/*/, function (req, res) {
  res.send('Hello World')
}) // 익명함수가 콜백함수로 들어가 있음
// 구조는 method + "/" 으로 이루어져 있음, get 메서드로 '/뒷내용'을 불러오고 응답을 문자열로 받아옴 

app.listen(3000) // 포트넘버를 3000으로 설정

3-2 객체

1️⃣ 객체란?

  • 주어 자리에 왔을 때 문장이 만들어지면 객체
  • ex. "Node.js를 공부해보자(책)"
    • 상품명: Node.js를 공부해보자
    • 상품가격: 20,000
    • 상품소개: 이 책은 이래서 좋아
app.get('/nice', function (req, res) {
  res.send("반가워")
  // 우리는 자바스크립트 언어를 사용하며 자바스크립트는 객체가 있음, 때문에 자바스크립트 객체로 보내야 함(프론트엔드는 자바스크립트이기 때문임)
})
  • 객체 예시 1
    let person = {
    	name: "songa",
    	age: 20
    } ```
  • 객체 예시 2
    let nodejsbook = {
    	name: 'Node.js를 공부해보자',
    	price: 20000,
    	description: 'nice'
    }
    function print(book) { // 위 변수이름과 매개변수 이름이 같지 않아도 됨, 형식의 예시임
    	console.log(book.name); //'Node.js를 공부해보자'
    	console.log(book.price); // 20000
    	console.log(book.description); // 'nice'
    }
    print(nodejsbook);  ```

2️⃣ **json이란?**
  • json(javaScript Object Notation): 자바스크립트 객체가 어떻게 생겼나 = 어떤 형태인가

  • 아래와 같이 객체는 json 형태 {키:밸류}로 출력되는 것을 확인할 수 있음, 프론트엔드(javascript)에서는 키 값을 가지고 밸류 값을 찾아서 사용하게 될 것(프론트와 백이 같은 javascript를 사용하기 때문에 상대적으로 쉬워짐)

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

app.get('/hello', function (req, res) {
  res.send({
    say : "안녕",
    speak : "반가워"
  })
})

  • send 함수는 respnse로 객체, json, html, 텍스트 모두 구분없이 다 보낼 수 있음
  • json 함수는 json만 response 할 때 쓰임(명확하고 속도가 빠른 장점이 있음)
const express = require('express')
const app = express()

let nodejsbook = {
	name: 'Node.js를 공부해보자',
	price: 20000,
	description: 'nice'
}

app.get('/bookinfo', function (req, res) {
  res.json(nodejsbook) // 객체를 넣을 수도 있음
})
  • 하드 코드 하지 않고 요청 받은 값을 그대로 표출하고 싶을 때의 방법
const express = require('express')
const app = express()

app.listen(3000) 

app.get('/product/:n', function (req, res) {
  // ':' 은 URL로 매개변수를 전달해주는 것으로 받아들임
  // /product/___ 빈칸에 오는 값을 n이라는 변수에 담아줘 라는 의미 
  res.json({
    num : req.params.n // num에는 요청받은.파라미터 중. n을 출력하자
  })
})
profile
김개발의 개발여정

0개의 댓글