Post

데브코스 TIL - Day 14

23년 12월 6일 강의를 들은 내용과 추가로 더 학습한 내용을 기록한 글입니다.

Express

1
2
3
4
5
6
7
8
9
10
11
12
const express = require("express");
const app = express();

// GET 메소드로 '/'이 날아오면
// 매개변수로 전달받은 콜백 함수를 호출 => 서버에 세팅
app.get("/", function (req, res) {
  // 응답 보내는 내용
  res.send("Hello World");
});

// 서버 셋팅 (포트넘버 세팅)
app.listen(3000);

결과
express1

실습 1

  • method Get
  • url ‘http://localhost:3000/test’
  • 출력내용: TEST SUCCESS
1
2
3
4
5
6
7
8
9
const express = require("express");
const app = express();

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

app.listen(3000);

결과
test

실습 2

  • method Get
  • url ‘http://localhost:3000/test/1’
  • 출력내용: one!!!
1
2
3
4
5
6
7
8
9
const express = require("express");
const app = express();

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

app.listen(3000);

결과
test1

실습 3

  • method Get
  • url ‘http://localhost:3000/test/hello’
  • 출력내용: 안녕하세요
  • url ‘http://localhost:3000/test/bye’
  • 출력내용: 안녕히 가세요
  • url ‘http://localhost:3000/test/nicetomeetyou’
  • 출력내용: 만나서 반갑습니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const express = require("express");
const app = express();

app.get("/hello", function (req, res) {
  res.send("안녕하세요");
});
app.get("/bye", function (req, res) {
  res.send("안녕히가세요");
});
app.get("/nicetomeetyou", function (req, res) {
  res.send("만나서 반갑습니다");
});

app.listen(3000);

결과
express3

여러개의 정보를 보내려면 어떻게 해야할까?

정보를 객체로 만들어서 전달하면 됨!

JSON

Javascript Object Notation (자바스크립트 객체 형태/모양)

1
2
3
4
{
  "name": "hyemin",
  "age": 2
}
1
2
3
4
5
const book = {
  title: 'Node.js를 배워보자',
  price: 200000,
  description: '이  좋음!!!'
}

res.send() res.json() 실제로는 별로 차이가 안남

실습 4

1
2
3
4
5
const book = {
  title: 'Node.js를 배워보자',
  price: 200000,
  description: '이  좋음!!!'
}

products/1 에 접속했을 때 객체 전달하기

  • send()에 직접 내용 작성하기
1
2
3
4
5
6
7
app.get("/products/1", function (req, res) {
  res.send({
    title: "Node.js를 배워보자",
    price: 200000,
    description: "이 책 좋음!!!"
  });
});
  • json 내용을 따로 변수로 작성하고, send()에 매개변수로 넣기
1
2
3
4
5
6
7
8
9
const book = {
  title: "Node.js를 배워보자",
  price: 200000,
  description: "이 책 좋음!!!"
};

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

결과
products1

실습 4

req.params를 사용해서 파라미터 받아오기

1
2
3
4
5
6
7
8
9
const express = require("express");
const app = express();

app.get("/products/:num", function (req, res) {
  const { num } = req.params;
  res.send({ num });
});

app.listen(3000);

결과
params

req.params

  • 라우터의 매개변수
1
2
3
4
5
// http://localhost:3000/paramsId

app.get("/:id", (req, res) => {
  console.log(req.params); // {id: 'parmasId'}
});
1
2
3
4
5
// http://localhost:3000/paramsId/some

app.get("/:id/:name", (req, res) => {
  console.log(req.params); // {id: 'parmasId', name: 'some'}
});

req.query

  • 쿼리 문자열 매개변수에 대한 속성이 포함된 객체
1
2
3
4
5
6
7
8
9
10
11
12
// https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98

app.get("/", (req, res) => {
  console.log(req.query);
  // {
  // where : 'nexearch',
  // sm: 'top_hty',
  // fbm:'0',
  // ie: 'utf8',
  // query:'%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98'
  // }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// http://localhost:3000/watch?v=FQfEqIGMF7Q&list=PLE7NSUpyv6SWUghI2uuPHc_lrE4mvPK5y&index=1&t=2363s

app.get("/watch", function (req, res) {
  console.log(req.query);
  const { v, t } = req.query;
  res.send({ videoId: v, timeline: t });
});

//  {
//     v: 'FQfEqIGMF7Q',
//     list: 'PLE7NSUpyv6SWUghI2uuPHc_lrE4mvPK5y',
//     index: 1 ,
//     t:'2363s',
// }

req.body

  • JSON 등의 데이터를 담을 때 사용
  • 키 - 값
  • 4.16이전 버전: body-parser를 사용하기 전까지는 오류를 뱉음 (undefined값으로 설정)
  • 4.16 이후 버전: expess.json() 모듈 사용
1
2
3
4
5
6
7
8
9
const book = {
  title: "Node.js를 배워보자",
  price: 200000,
  description: "이 책 좋음!!!"
};

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

Alt text

This post is licensed under CC BY 4.0 by the author.