import express from "express";
const app = express();
const PORT = 5000;
// handle 뭐시기 함수들은 controller다. 사실은 req, res, next 3개의 인자가 있음
const handleHome = (req, res) => {
return res.send("welcome home");
}; // express가 하는 일 : (요청, 응답) 요청을 받으면 응답하도록 자동으로 인자를 줌 - req객체, res객체
const handleHTML = (req, res) => {
return res.send("<h1>Im HTML</h1>");
};
const handleJSON = (req, res) => {
return res.send({ name: "Node.JS" });
};
// middleware 개념잡기 => middleware는 응답하는 함수가 아니라 request를 계속 진행시킨다
const pracMiddleware = (req, res, next) => {
console.log(`client in going ${req.url}`);
next();
};
const whatIsNext = (req, res, next) => {
return res.send("I am next!");
};
app.get("/", handleHome); // 두번째 인자는 함수(콜백함수) 이 get()들은 각각 라우트임
app.get("/h1", handleHTML);
// h1페이지 get 요청이 있을때 handleHTML을 실행
app.get("/json", handleJSON);
app.get("/middle", pracMiddleware, whatIsNext); //middleware 연습
const handleListening = () => console.log("server is running");
app.listen(PORT, handleListening);
// PORt를 listen하고 있다가 handleListening을 실행
get은 http 통신 method이다.
클라이언트 기준의 get 요청이라 이해하면 편하겠다.
nodeJS는 req(요청)을 받고 res(응답)한다.
내 서버에 사용자가 접속할 때 가장 처음 받는 요청이므로 가장 기본이라 하겠다.
app.get("/", f1)
"/" url의 라우트를 생성하고 "f1"으로 다룬다는 개념을 이해하자
두번째 argument는 반드시 함수여야한다.