본문 바로가기

UI/BE : DB, Node

[ node ] 기초 CRUD (Feat.폴더구조 이해)

Node js를 통해서 간단한 CRUD를 해보면서 간단하 폴더구조도 경험해 보기.

//주의
Javascript엔진은 한 줄씩 읽고 위에서 아래로 내려오기 때문에 parse,config 같은 건
사전에 미리 위쪽에 배치해야한다.

npm install express(필수)

Tip

Node를 활용한 백만들기 할 때, 폴더 구조
한 프로젝트에서 한 번에 npm 사용하기.

 

project 이름                  <<< 여기에 최상위 폴더에 npm install
  ㄴfrontend
  ㄴbackend
  ㄴnode_modules

packge.json

...
"scripts: {
  "dev" : npm backend/server.js".  <<< npm run dev 처도 가능하도록 설정
},
...

 

 


 

 

 

 

Ogranzing : routers + controller

router

// 폴더 구조
backed
  ㄴ ...
  ㄴ routers
        ㄴproducts.js
  ㄴ ...

import express from "express"
  or const express = require('express');

const router = express.Router()

router.get("/", getProducts);  // controller에서 가져온 함수

export defoult router

 

 

main(intro)

// server.js
import porejctRouters from "./routers/product.route.js"

// /api/products 포함된 모든 ULR은 다 porejctRouters쪽으로 돌린다. 라는 뜻
app.use("/api/products", productRouters)   // router로 보내기 productRouters 폴더로 정보 보내기

 

 

controller

// 폴더 구조
backed
  ㄴ ...
  ㄴ controllers
        ㄴproducts.controller.js
  ㄴ ...


// import Produc from "../models/product.model.js";

export const getProducts = async (req, res) =>{
  try{
    const products = await Product.find({ });
    res.status(200).json({ success : true, data : products })
  } catch(error) {
    console.error(`Error : ${error.message}`)
  }
}

 

 

번외) .env를 사용할 경우, dotenv( via npm) 설치

// npm i dotenv (필수)  <<<  server.js에서 활용  import dotenv from "dotenv" ... dot.env.config();
// dotenv.config 폴더 위치

backedn
  ㄴconfig
      ㄴdb.js

// 예시

import mongoose from "mongoose"
export const connectDB = async () => {
  try {
    const conn = await mongoose.connect(process.env.MONGO_URI);
   } catch (error) {
    console.error(`Error : ${error.message}`)
  }
};

 

 

요약

1. Node js를 갖고 백엔드 세팅
2. router와 controller를 통해 폴더 orgnaizing

 

출처 : freecodecamp.org

https://www.youtube.com/watch?v=O3BUHwfHf84