객체와 json와 express.js

데브코스

목록 보기
22/131

데이터를 하나씩 X => 데이터를 모아모아 덩어리로 보내겠다!!

"객체" 라는 뜻이며,

우리 세상이 객체로 이루어져 있습니다.

'주어 자리에 왔을 때, 만들어지면 그건 다 객체다' - 김송아

객체
ex) "Node.js를 공부해보자. 라는 책이 있다 치면

  • 상품명: Node.js를 공부해보자.
  • 상품가격 : 20000
  • 상품소개 : 이 책 좋음. 왜? 김송아 지음

이 모든 상품명, 상품가격, 상품소개라는 정보는 저 책 하나를 위한 정보인거잖아.
그럼 저 책이라는 객체 하나에 대한 정보이기 때문에 객체만 보내면 된다.

그럼 전에 글과 이어지는 것인데, express로 url를 보낼때, 텍스트를 보내는게 아니라 객체를 보내라!


json 이란

(javascript object notation)

자바스크립트 객체 모양 (json) : 자바스크립트 객체가 어떻게 생겼나 = 어떤 형태인가

let book = {
	title : "Node.js를 공부해보자"
	price : 20000,
	description : "이 책 좋음 왜? 김송아가 지음"
 
 }

객체 보낼때, json의 형식으로

app.get("/hello", function (req, res) {
  res.send({
    say: "안녕하세요",
  });
});

const express = require("express");
const app = express();

app.get("/", function (req, res) {
  res.json({
    say: "Hello world",
  });
});

//API : GET + "http://localhost:1234/test"

app.get("/test", function (req, res) {
  res.json({
    say: "Test",
  });
});

app.get("/test/1", function (req, res) {
  res.json({
    say: "One!",
  });
});

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

app.get("/products/1", function (req, res) {
  res.json(nodejsBook);
});

app.get("/hello", function (req, res) {
  res.json({
    say: "안녕하세요",
  });
});
app.listen(3000); //서버 셋팅: 포트 넘버(번호)를 3000으로 셋팅하는거야. 그래서 이 코드는 어디에 두든 상관없이 작동해!

여기 보면 아래에 let nodejsBook이 있고, 그걸 products/1에서 res.json(nodejsBook)으로 그냥 넘겨줬어. 봐봐 이렇게 객체를 넘어줄 수 있는거야.
이게 백엔드의 거의 기초이자 끝이야.
서버를 만들어서 해당 url에 내가 보여주고 싶은 것을 보여준다면 뭐 끝이지 안그래?


근데 만약에


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,
  });
});

이렇게 products/1,2,3처럼 이런 페이지가 여러개가 있는데, 이 페이지가 한 1000개 있다고 하면 너는 이걸 저렇게 천개를 만들래?
그럴 수 없겠지
만약 비슷한 기능을 하는 페이지를 많이 만들어야 한다면 이걸 한 번에 해줄 수 있는 방법이 있어!

app.get("/products/:n", function (req, res) {
  // : 이 땡떙이 나오면 => 어? 나한테 url로 매개변수를 전달해줄 건가보다. req.params.n으로 받을 수있어
  //products/__ 빈칸에 오는 값을 n이라는 변수에 담아줘!
  res.json({
    num: req.params.n,
  });
});

res.json({
num: req.params.n
});
});

이게 핵심이야!!

params는 Express.js에서 URL의 경로 매개변수(route parameters)를 담고 있는 객체라고 하고

이런 식으로도 사용할 수 있어

app.get('/user/:id', (req, res) => {
    console.log(req.params.id); // URL의 :id 부분에 해당하는 값
});

app.get('/api/number/:n', (req, res) => {
    res.json({
        num: req.params.n  // URL의 :n 부분에 해당하는 값
    });
});

객관식 문제

profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글