728x90
💡statesairline/app.js
// express, cors 사용하기
const express = require("express");
const cors = require("cors");
const app = express();
// 모든 서버는 요청을 받을수 있는 포트 번호를 필요로 합니다.
// HTTP server의 표준 포트는 보통 80 번 이지만, 보통 다른 서버에서 사용중이기 때문에 접근할 수 없습니다.
// 따라서 우리는 보통 테스트 서버 포트로 3000, 8080, 1337 등을 활용합니다.
// PORT는 아파트의 호수와도 같습니다. 서버로 요청을 받기 위해서는 다음과 같이 포트 번호를 설정 합니다.
// (* 때에 따라 다른 포트번호를 열고 싶다면, 환경 변수를 활용 하기도 합니다.)
const port = 3001;
// 라우팅
const flightRouter = require("./router/flightRouter");
const bookRouter = require("./router/bookRouter");
const airportRouter = require("./router/airportRouter");
app.use(cors());
app.use(express.json());
// 각각 경로 설정
app.use("/flight", flightRouter);
app.use("/book", bookRouter);
app.use("/airport", airportRouter);
// domain/ 으로 접속 시 아래 메시지 띄어줌
// req -> 클라이언트에서 오는 요청 정보가 담긴 객체
// res -> 서버가 응답해주는 응답 정보가 담긴 객체
app.get("/", (req, res) => {
res.status(200).send("Welcome, States Airline!");
});
// next 함수를 호출하면 현재 미들웨어에 이어서 다음 미들웨어를 실행.
app.use((req, res, next) => {
res.status(404).send("Not Found!");
});
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send({
message: "Internal Server Error",
stacktrace: err.toString(),
});
});
app.listen(port, () => {
console.log(`[RUN] StatesAirline Server... | http://localhost:${port}`);
});
// 여러번 재사용된다면 개별적인 파일로 만들고 마지막에 다른 파일에서 사용할 변수를 module.exports에 대입해주면 된다.
module.exports = app;
💡statesairline/router/airportRouter.js
// airpotController에서 findAll 함수 가져옴.
const { findAll } = require("../controller/airportController");
// express와 Router 사용을 위한 선언
const express = require("express");
const router = express.Router();
//domainname/airport/..... 으로 요청이 들어오면 findAll 실행
router.get("/", findAll);
module.exports = router;
💡statesairline/controller/airportController.js
const airports = require("../repository/airportList");
module.exports = {
// [GET] /airport?query={query} 요청을 수행합니다.
// 공항 이름 자동완성 기능을 수행합니다!
findAll: (req, res) => {
if (req.query.query !== undefined) {
console.log(req.query.query);
const list = airports.filter((item) => {
return item.code.includes(req.query.query.toUpperCase());
});
console.log(json(list));
return res.status(200).json(list);
}
res.json(airports);
},
};
http://localhost:3001/airport를 포스트맨으로 확인해 본 결과!
오늘은 여기까지 하고 내일 bookRouter.js/flightRouter.js/BookController.js/flightController.js 마저 복습해봐야 겠다.
728x90
'프로그래밍 > JavaScript' 카테고리의 다른 글
Node.js 에러 해결 - Error: listen EADDRINUSE: address already in use (0) | 2022.06.21 |
---|---|
[JavaScript] 비동기처리 async/await (0) | 2022.06.09 |
Node.js Express (0) | 2022.06.08 |
[React] SPA 그리고 React Router (0) | 2022.05.10 |
<JavaScript> React 그리고 JSX (0) | 2022.05.06 |
댓글