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
'UI > BE : DB, Node' 카테고리의 다른 글
[ BE/DB ] SQLlite:기본편 2편 (0) | 2025.03.08 |
---|---|
[ BE / DB ] SQLlite:기본 1편 (1) | 2025.02.05 |
[ BE / DB ] SQLite을 활용하여 local에 데이터 저장하기(Feat. 공홈) (0) | 2024.11.23 |
[ BE / DB ] Supabase 일치하는 column 중복(?) 선택 하기(feat.eq or ilikes) (2) | 2024.07.24 |