express 사용 이유

Express는 Node.js를 위한 웹 애플리케이션 프레임워크

서버 측 애플리케이션과 API를 만들기 위해 사용됨

기능 구성

express 서버 설정 - CORS 설정 - MongoDB 연결 - 라우터 등록 - 서버 실행

express 기능 분석

<aside> ✏️

require(”express”);

const app = express();

<aside> 📌

라우트 정의, 요청, 처리 등 - .get( ) .post( )

서버(포트) 실행 .listen( )

</aside>

기능 구현 코드

Express로 서버 생성 → CORS/json 설정 → MongoDB 연결 → book/users API 라우터 등록 → 해당 포트에서 API 서버 실행

// Node.js 서버 프레임워크
import express from "express";
// MongoDB와 연결하고 데이터 다루는 라이브러리
import mongoose from "mongoose";
// .env 파일에 있는 환경변수(PORT, MongoDB URI) 불러오기
import dotenv from "dotenv";
// 다른 도메인(프론트엔드)에서 서버에 요청할 수 있게 허용
import cors from "cors";
import bookRoute from "./route/book.route.js";
import userRoute from "./route/user.route.js";

/* const express = require("express");
const dotenv = require("dotenv"); */
const app = express();

app.use(cors());
app.use(express.json());

dotenv.config();

const PORT = process.env.PORT || 4000;
const URI = process.env.MongoDBURI;
// connect to mongoDB
try {
  // 최신 방식 await mongoose.connect(URI) 또는 mongoose.connect(URI).then().catch() 더 안전
  mongoose.connect(URI, {
    // MongoDB 주소(URI)에 최신 표준 방식으로 안전하게 연결
    useNewUrlParser: true,
    useUnifiedTopology: true,
  });
  console.log("Connected to mongoDB");
} catch (error) {
  console.log("Error: ", error);
}

// defining routes
/* .라우트 등록("/라우터 적용 경로", 라우터 객체)
use("경로로 들어오는 요청을", 이 라우터가 처리하라) */
app.use("/book", bookRoute);
app.use("/users", userRoute);
// 서버 on 클라이언트 요청을 받을 준비
app.listen(PORT, () => {
  console.log(`Server is listening on port ${PORT}`);
});