본문 바로가기
Web/JavaScript

[Node.js] API 기본 개념 잡기 (express)

by dwoi 2023. 5. 2.

node.js의 express 모듈 기본 예제를 살펴보면서 어떤 식으로 구성되는지에 대해 살펴보는 

 

목차

     


    Express

    express - npm (npmjs.com)

     

    express

    Fast, unopinionated, minimalist web framework. Latest version: 4.18.2, last published: 7 months ago. Start using express in your project by running `npm i express`. There are 71761 other projects in the npm registry using express.

    www.npmjs.com

     

    node.js에서 제공하는 간결한 웹 프레임워


    1. Hello world 코드 분석

    const express = require('express')
    const app = express()
    
    app.get('/', function (req, res) {
      res.send('Hello World')
    })
    
    app.listen(3000)
    • app.listen(3000) : 3000번 포트를 열어 두겠다.
    • app.get('/' , () => {})
      • get은 http 메소드
      • '/' : 라우팅
      • () => {} : 콜백 함수

     

    ◆ http 메소드  : 요청의 목적, 종류를 알리는 수단

    • get이라는 방식 (주소에 즉 querystring에 정보가 노출)
    • post라는 방식 : 내부적으로 정보를 전달하는 방

     

    ◆ 라우팅 : 특정 포트를 들어가서 어디로 들어갈지에 대해 알려주는 것 

     

    ◆ 콜백 함수 :  함수가 끝나고 실행할 함수를 의미

     

    → get 방식으로 정보를 읽는데 나는 / 라는 기본 주소로 들어가면 응답으로 hello world를 내놔라 라는 의미

    → localhost:3000으로 들어가면 hello world를 볼 수 있음.

     


     

    2. 간단한 API 구성

    1단계 : 예제 변형

    위 예제 코드에서 app.get()의 라우팅을 바꿔주고

    그거에 따른 응답을 바꿔주는 것으로 설정

      app.get('/dog', function (req, res) {
        res.send('강아지')
      })

    /dog라는 라우팅을 통해 들어가면 사이트에 강아지라고 출력.

    send 보낼때 html, json 파일을 보내줄 수 있음.

     

    2. 파라미터 값으로 라우팅

    parameter를 통해 변수를 받을 수 있음.

    :id :있는 거

      app.get('/user/:id', function (req, res) {
        const q = req.params
        console.log(q)
        res.json({'userid' : q.id})
      })

    위처럼 작성하면 q에 요청하는 파라미터를 받아올 수 있음.

     

    3. query 값으로 라우팅

      app.get('/user/:id', function (req, res) {
        const q = req.query
        console.log(q)
        res.json({'userid' : q.id})
      })

    주소에 있는 query값을 받을 수 있음.

     

    4. Post 방식?

    parameter를 받아서 처리


    ◆ 응답

    이제 들어온 파라미터에 따라 조건문을 줘서

    해당 조건에 맞는 응답이 들어왔을 때 돌려주는 방식으로 구성이 되는 형식이라고 이해!


     

    CORS

    교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제

    보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한하기 때문에

    API 설계 시 모듈을 깔아서 설계를 해야 함

     


     

    마무리

    대략적인 구조만 살펴봤는데. 대략적으로 어떻게 오고가는지에 대해서 파악할 수 있었음.

    이를 나중에 어떤식으로 변형해서 써먹을지에 대해서도 고민할 필요가 있음.

     

     

    댓글