package.json 세팅 및 설치
npm init
npm install bcryptjs cors dotenv jsonwebtoken mongoose
npm install -D nodemon
nodemon 스크립트 작성
"dev" : "nodemon src/index.js",
전체 폴더 구조 생성
express.static()
이미지, CSS 파일 및 JavaScipt 파일과 같은 정적 파일을 제공하려면 Express의 express.static 내장 미들웨어 기능을 사용.
바로 upload 폴더에 있는 이미지 파일들을 프론트로 나중에 보낼수 있게
public 이라는 폴더에 있는 정적인 파일을 제공할 수 있다.
가상 경로를 지정하여 특정 url 을 지정할 수 있다.
상대경로를 path 모듈을 사용해서 절대경로를 사용하게 한다.
상대 경로 : / 로 시작 안함
절대경로 : /로 시작함.
CORS
app.use(cors());
cors 미들웨어 등록
Express.json()
app.use(express.json());
클라이언트에서 오는 body의 json형식을 받기 위해 json 미들웨어 등록
MongoDB사용하기
몽고디비는 로컬에서 설치를해서 사용을 할 수도있고 cloud service를 이용해서 사용할 수 있다.
cloud servic (atlas)를 사용.
1. 몽고디비 회원가입 로그인 후 project 생성 후 database 생성 및 cluster 생성
2. 몽고디비 user생성 --> 아이디, 비밀번호 ,DB 이름을 기억해서 어플과 연결해야하니 기억 !
좌측에 database Access 로 들어가서 add new database user
3. mogoose 다운
npm install mongoose
4. mongoose 이용해서 앱과 연결
아래와 같이 작성하고 몽고디비 데이터베이스 url을 인자로 넣어주어 DB와 연결 후 테스트
url에는 db의 아이디와 비밀번호가 있으니 차후 환경변수로 설정
const dotenv = require("dotenv");
dotenv.config();
Mogoose에 대해서
애플리케이션 계층에서 특정 스키마를 적용 후 모델로 생성 & 모델 유효성 검사 등등 유용한 기능을 제공한다.
1. 스키마 생성
Sehema : Document의 구조, 기본값, 유효성 검사기 등을 정의
예) 기본값 default : 0 유효성 검사 required : true
2. 스키마 이용해서 Uesr 모델 만들기
Model : 레코드 생성, 쿼리, 업데이트, 삭제 등을 위한 데이터베이스 인터페이스를 제공.
3. 모델을 이용해서 데이터를 컨트롤
3-1 모델 객체의 create 메서드로 douctment 생성하기
3-2 인스턴스 객체 생성 후 save 메서드로 douctment 생성하기
Model 및 Schema 생성하기
Express에서 에러 처리하기
원래는 위에처럼 app.use(fuction(error,req,res,next) { res.json({messages : error.message})로 에러 처리를 하지만
비동기 요청으로 인한 에러는 에러처리기에서 저 에러를 받지 못한다.
그래서 위와 같이 next 안에서 에러를 던져야 한다.
아래는 국룰적인 에러처리 미들웨어 형태이다.
app.use((error, req, res, next) => {
res.status(err.status || 500);
res.send(error.message || '서버에서 에러가 났습니다.');
})
'clone toy projects > node-react-shop-app' 카테고리의 다른 글
랜딩 페이지 (0) | 2023.08.12 |
---|---|
상품 업로드 (0) | 2023.08.12 |
로그인 (0) | 2023.08.11 |
회원가입 (0) | 2023.08.10 |
프론트엔드 기본 구조 생성하기 (0) | 2023.08.08 |