EXPRESS

이용원·2022년 12월 12일
0

Node

목록 보기
5/5

EXPRESS는 웹 개발을 하는 프라임워크로 node를 사용하여 서버를 구축하는 데 쓰임

  • 요청을 받아드릴 서버를 만듦
  • 들어오는 요청 파싱작업
  • 정보를 요청으로, 요청을 정보로
//1. express 불러오기
const express = require('express')
//2. express함수를 호출해서 반환값 app 변수에 담아주기
const app = express();
//express를 호출하면 객체 안에 수많은 메소드들과 값들은 반환한다
//메소드들 중에는 get, post, put, delete처럼 데이터를 주고 받는데 필요한 메소드들도 있다.
console.log(app);

app.use((req,res)=>{
    //어떠한 요청이라도 들어오면 콜백이 실행
    //파리미터 req,res 객체는 express로 만들어져 콜백으로 자동으로 전달됨 
    //텍스트 정보인데 express가 객체로 파싱함
    console.log('We got new request')
    
    //res.send는 http 요청을 보냄 
    //the body parameter can be a Buffet obj, a String, an obj, or an Array
    // res.send('요청을 받았어요');
    // res.send({hi:'hi',name:'Lee'})
    res.send('<h1>hi</h1>')
})




app.listen(8080,()=>{
    //3000번 포트에 들어오면 실행됨
    console.log('들어옴')
})

라우팅

요청과 요청된 경로를 가져와서 응답을 갖는 어떠한 코드에 맞추는 것
예를 들어 경로가 /dogs, /search, /help


app.get("/", (req, res) => {
  res.send("home");
});
//      요청경로   app.use랑 똑같이 콜백함수
// localhost:8080/cats에 요청 받을 때마다 실행됨
app.get("/cats", (req, res) => {
  res.send("cat request");
});

app.get("/dogs", (req, res) => {
  res.send("dog request");
});

app.get("*", (req, res) => {
  res.send(
    `설정하지 않은 라우트로 들어오는 요청을 
    확인하기 위해서 경로를 '*'로 설정
    이 라우트는 모든 라우트설정이 다 끝나고 맨 마지막에 설정해줌
    왜냐하면 라우트는 한번 응답하면 끝나기 때문에
    `);
});

라우팅 패턴 경로 매개변수 설정

// /r/:변수      << :뒤에 변수명을 지정해줌
// /r/:cat /r/:dog /r/:bird
// /r/cat /r/dog /r/bird /r/뒤에 어떤 것을 넣어도 밑에 코드블럭이 실행됨
app.get('/r/:variable',(req,res)=>{
    console.log(req.params)
    const {variable} = req.params
    console.log(variable)
    res.send(`/r/this value :  ${variable}`)
})

req.param로 유저가 요청한 localhost/r/여기에 입력한 값을 가져올 수 있음

req.params는 오브젝트이고 key는 app.get('/r/:) 이 세미콜론 뒤에 설정해준 값이 키값이 됨 value값은 유저가 입력한 /r/hello -> hello

req.params ={variable : hello};

localhost/r/hello/secondHello 이런식으로 요청이 들어오면??

app.get('/r/:variable/:variable2',(req,res)=>{
    console.log(req.params)
    const {variable, variable2} = req.params
    console.log(variable)
    console.log(variable2)
    res.send(`/r/this value :  ${variable}`)
})

오브젝트에 순서는 없지만 설명을 위해서
첫번째 : 뒤에 오는 값이 첫번째 키 - 유저가 요청한 주소값 밸류
두번째 : 뒤에 오는 값이 두번쨰 키 - 유저가 요청한 주소값 밸류

0개의 댓글