웹 풀 사이클 데브코스

[TIL] Day11 - express

닿다라다나닷 2024. 4. 24. 16:42

http VS express

http : 웹서버처럼 사용할 수 있는 내장 모듈

express 안에 http가 포함되어있다.

 

express

Fast, unopinionated, minimalist web framework. Latest version: 4.19.2, last published: a month ago. Start using express in your project by running `npm i express`. There are 79273 other projects in the npm registry using express.

www.npmjs.com

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

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

app.listen(3000)  //순서 상관 없다! 포트넘버 셋팅

const? 바꿀 수 없다!

app에 서버를 담았고

`/` : http://localhost:3000/ 주소값이 날라오면, 콜백함수 호출한다. 미리 서버에 세팅해놓은 방식

콜백함수는 http와 같이 response와 request를 이용해 날린다.

 

차이점?

빠르고, 간결하다.

 

 express REST API

app.get 코드 : GET + "/"

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

//API : GET + "/test/1"
//"TEST SUCCESS"
app.get("/test/1", function (req, res) {
  res.send("One!");
});

//API : GET + "/hello"
//"TEST SUCCESS"
app.get("/hello", function (req, res) {
    res.send("안녕하세요");
  });

한국어도 쉽게 출력되는걸 볼 수 있다.

 

JSON 객체 텍스트

데이터를 텍스트 두개로 보내지말고, 묶은 객체로 보내자!

객체 : 세상이 객체로 이루어져있다.

대표 객체의 정보를 묶어서 보내자. 프론트엔드에서 알아서 찾아갈 수 있도록!

JavaScript Object Notation :  자바스크립트 객체가 어떤 형태인가

let nodejsBook = {
  title: "nodejs 책",
  price: 20000,
  author: "datdaradanadat",
};
function print(book) {
    console.log(book.title);
    console.log(book.price);
    console.log(book.author);
}

print(book)

 

.json 함수

app.get("/products/1", function (req, res) {
    res.json({
        title : "nodejs책",
        price : 20000,
        author : "datdaradanadat"
    });
});

json 함수 안에 객체 생성하지말고, 전역변수로 객체 생성 후 함수 가동

let nodejsBook = {
  title: "nodejs 책",
  price: 20000,
  author: "datdaradanadat",
};

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

 

express, 객체, params 구현 실습

app.get("/products/:n", function (req, res) {
  res.json({
    num: req.params.n,
  });
});

products/__ 빈칸에 오는 값을 n이라는 변수에 담아달라 `:`

→ url 로 매개변수 전달해주나? req.params모든 값을 담아오겠다!

최종 `req.params.n`으로 url 값을 객체에 전달할 수 있다.

 

☑️ 배운 점

이전 플젝에서 도서 객체 받아오는 방법이 같아서 신기했고, 이제 동작방법 백엔드 로직을 이해할 수 있었다!

params 에 대해 조금더 찾아볼것이다.