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}`)
})
오브젝트에 순서는 없지만 설명을 위해서
첫번째 : 뒤에 오는 값이 첫번째 키 - 유저가 요청한 주소값 밸류
두번째 : 뒤에 오는 값이 두번쨰 키 - 유저가 요청한 주소값 밸류