[MongoDB] Node.js 에서 MongoDB 사용하기

김현수·2024년 1월 26일
0

DB

목록 보기
2/4


🖋️ Node.js 에서 MongoDB 사용


  • 설치

npm i mongoose

  • 실행

    • mongodb://localhost:27017/[db-name]
import mongoose from "mongoose";

mongoose
  .connect('mongodb://localhost:27017/myDB')
  .then(() => console.log("connected to mongodb"))
  .catch((e) => console.error(e));

  • 선언

import { Schema, model } from "mongoose";

const userSchema = new Schema({
   name: String,
   age: Number,
   email: { type: String, required: true }
});

export default model("User", userSchema);

  • HTTP 경로를 설정

    • Express 사용
    • GET, POST, PUT, DELETE
    • _id 자동 생성
      • Mongoose 스키마에서 _id 필드를 명시적으로 생성 불필요
      • MongoDB는 이를 자동으로 처리

      • 아래 코드는 post, delete, put 모두 _id 사용
import express from "express";

const app = express();
app.use(express.json());

// GET - Read users
app.get('/users', async (req, res) => {
  try {
    const users = await User.find();
    res.json(users);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

// POST - Create a new user
app.post('/users', async (req, res) => {
  const user = new User(req.body);
  try {
    const newUser = await user.save();
    res.status(201).json(newUser);
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});

// PUT - Update a user
app.put('/users/:id', async (req, res) => {
  try {
    const updatedUser = await User.findByIdAndUpdate(req.params.id, req.body, { new: true });
    res.json(updatedUser);
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});

// DELETE - Delete a user
app.delete('/users/:id', async (req, res) => {
  try {
    const deletedUser = await User.findByIdAndDelete(req.params.id);
    res.json({ message: 'User Deleted', deletedUser });
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
profile
일단 한다

0개의 댓글