mongodb(5)
-
[ React + Next.js + MongoDB ] 프로젝트 생성
next.js를 사용해서 레시피 관리 플랫폼을 만들어볼 예정! 1. 프로젝트 생성사용 중인 프로젝트 폴더에 원하는 이름의 폴더를 생성한 뒤 인텔리제이에서 [ open ] 으로 해당 폴더를 열어준다 프로젝트가 열리면 해당 프로젝트의 터미널창에$ npx create-next-app@latest .다음과 같이 입력하고 엔터를 치면✔ Would you like to use TypeScript? … No / Yes✔ Would you like to use ESLint? … No / Yes✔ Would you like to use Tailwind CSS? … No / Yes✔ Would you like your code inside a `src/` directory? … No / Yes✔ Would you like..
2025.01.30 -
[ Node.js ] CRUD
CRUD ?데이터베이스나 프로그램에서 데이터를 처리하는 네 가지 기본 작업CREATE → 새로운 데이터를 생성, 일반적으로 POST 메서드를 사용함READ → 이미 존재하는 데이터를 읽조 조회, 일반적으로 GET 메서드 사용UPDATE → 기존 데이터를 수정, PUT 또는 PATCH 메서드를 사용PUT은 전체 데이터를 수정할 때 사용하고, PATCH는 일부 데이터를 수정할 때 사용DELETE → 기존 데이터를 삭제, DELETE 메서드를 사용 📌 CREATE// create userconst createUser = async (req, res) => { const { username, email, password } = req.body; const newUser = new User({ ..
2025.01.30 -
[ Node.js ] 컨트롤러
컨트롤러(Controller) ?요청을 처리하고 비즈니스 로직을 수행한 후 응답을 반환하는 역할라우터와 비즈니스 로직을 분리해 코드 관리를 쉽게 하기 위함임 📌 컨트롤러 사용의 장점:모듈화 → 라우터와 비즈니스 로직을 분리가독성 증가 → 라우터가 깔끔해지고, 로직을 쉽게 찾을 수 있음재사용성 → 여러 곳에서 동일한 컨트롤러를 호출 가능유지보수 편리 → 특정 기능만 수정하면 여러 곳에서 적용됨 모든 컨트롤러들은 [ /controllers ] 디렉토리에서 관리 [ /controllers/userController.js ]const User = require('../models/User');const getAllUsers = async (req, res) => { try { const us..
2025.01.30 -
[ Node.js ] 라우터
라우터 ?클라이언트의 요청을 특정 핸들러(= 컨트롤러)에 전달하는 역할 📌 사용하는 이유:코드의 모듈화확장성 증가유지보수성 향상보통 [ /routes ] 디렉토리에 개별 파일로 분리하여 관리함 사용자(User) 관련 라우터 예시[ /routes/users.js ]const express = require("express");const router = express.Router();// GET: 모든 사용자 목록 조회router.get("/", (req, res) => { res.send("✅ 모든 사용자 목록을 조회합니다.");});// POST: 새로운 사용자 추가router.post("/", (req, res) => { res.send("✅ 새로운 사용자를 추가합니다.");});// G..
2025.01.30 -
[ Node.js ] Schema와 model 생성
루트 디렉토리에 [ models/User.js ] 디렉토리와 파일을 생성파일명은 데이터베이스에 저장될 테이블명 즉 컬렉션명을 단수형으로 설정하면 실제로 저장될 때 복수형으로 저장된다(예를 들어 user 라고 저장할 시 DB에는 users 라고 저장이 됨) [ User.js ]const mongoose = require('mongoose');const userSchema = new mongoose.Schema( { username: { type: String, required: true }, email: { type: String, required: true, uni..
2025.01.29