※ 다크모드로 읽으시는 것을 추천드립니다.
node_modules
: 해당 프로젝트 내에서 사용하는 패키지가 존재하는 디렉터리routes
: HTTP Request에 대한 처리 및 응답을 위한 라우터가 존재하는 디렉터리routes/bookRouter.js
: MongoDB의 "book" Collection를 HTTP Request로 제어하기 위한 라우터schemas
: MongoDB의 Collection에 대한 스키마를 정의하기 위한 디렉터리schemas/book.js
: "book" Collection을 정의하기 위한 스키마app.js
: Express 서버 및 MongoDB (Mongoose) 커넥션을 위한 소스코드package.json
: 프로젝트의 메타 데이터 및 사용되는 패키지 등을 정의하기 위한 문서 package-lock.json
: package.json을 통해 설치된 패키지의 의존성 트리에 대한 정보를 모두 갖는 문서README.md
: 프로젝트에 대한 가이드 또는 정보를 제공하기 위한 마크다운 문서# Express 프레임워크 설치
npm install express
app.js
const express = require("express");
const mongoose = require("mongoose");
const app = express();
// Express 통신 시 JSON 형식으로 데이터 통신
app.use(express.json());
// MongoDB 연결 정보
const MONGO_DB_URL = "mongodb://localhost:27017";
const MONGO_DB_NAME = "mongoTest";
// Express 서버 포트
const EXPRESS_PORT = 7777;
// MongoDB 연결
mongoose.connect(MONGO_DB_URL, {
// useNewUrlParser: true,
// useUnifiedTopology: true,
dbName: MONGO_DB_NAME
}).then(() => {
console.log("MongoDB Connected...");
}).catch(error => {
console.error(`MongoDB Connection Error: ${error}`);
});
app.get("/", (req, res) => {
res.send("Hello!!!");
});
app.listen(EXPRESS_PORT, () => {
console.log(`Server Started... Port: ${EXPRESS_PORT}`);
});
app.use("/", require("./routes/bookRouter"));
Express
프레임워크를 상수 "express"에 할당합니다.mongoose
모듈을 상수 "mongoose"에 할당합니다.routes/bookRouter
경로에 존재하는 라우터를 선언합니다.routes/bookRouter.js
const express = require("express");
const book = require("../schemas/book");
const routers = express.Router();
// book collection 조회
routers.get("/book", (req, res, next) => {
book.find().then(result => {
console.log(result);
res.json(result);
}).catch(error => {
console.error(`Find Error: ${error}`)
});
});
// book collection 데이터 삽입
routers.post("/book", (req, res, next) => {
const { name, author, insertDate } = req.body;
const bookValues = new book({
name,
author,
insertDate
});
bookValues.save().then(result => {
console.log("Insert Success");
res.json(result);
}).catch(error => {
console.error(`Insert Error: ${error}`);
})
});
module.exports = routers;
Express
프레임워크를 상수 "express"에 할당합니다.schemas/book
경로에 정의된 "book" Collection 스키마를 상수 "book"에 할당합니다.Express
Router를 초기화하며 상수 "routers"에 할당합니다.schemas/book
스키마와 매핑시킵니다. (Request Body의 Key 값과 Schema의 Key 값이 일치하지 않을 경우 에러 또는 값이 누락되니 주의해야 합니다.)