본문 바로가기

clone toy projects/node_expresss_chat

프로젝트 구조 갖추기 [흐름만 보기]

기본 패키지 구성

 

기본 폴더구조 구성

npx sequelize init

 

사용자 모델은 이메일(email), 닉네임(nick), 비밀번호(password), 보유 자금(money)으로 구성됩니다. 

사용자가 입찰을 여러 번 할 수 있으므로 사용자 모델과 경매 모델도 일대다 관계입니다.

상품 모델은 상품명(name), 상품 사진(img), 시작 가격(price)으로 구성됩니다. 

사용자 모델과 상품 모델 간에는 일대다 관계가 두 번 적용됩니다. 

사용자가 여러 상품을 등록할 수 있고, 사용자가 여러 상품을 낙찰 받을 수도 있기 때문입니다. 

등록한 상품과 낙찰 받은 상품, 두 관계를 구별하기 위해 각각 Owner, Sold로 관계명을 지정했습니다. 

이는 각각의 OwnerId, SoldId 컬럼으로 상품 모델에 추가됩니다. 

한 상품에 여러 명이 입찰하므로 상품 모델과 경매 모델도 일대다 관계를 갖습니다.

마지막으로 경매 모델은 입찰가(bid)와 입찰 시 메시지(msg)로 구성됩니다. 입찰 시 메시지는 null이어도 됩니다. 

경매 모델은 사용자 모델 및 상품 모델과 일대다 관계를 가지며, 경매 모델에는 userId 컬럼과 GoodId 컬럼이 생성됩니다.

모델을 생성한 후에는 모델을 데이터베이스 및 서버와 연결해야 합니다. 

"nodeauction" 데이터베이스를 생성해야 하므로 config.json을 데이터베이스에 맞게 수정하십시오.

npx sequelize db:create

위  명령어로 데이터베이스를 생성

model/index.js 파일 작성

 

passport/localStrategy.js과 passport/lindex.js

controller/auth.js

 

route/auth.js

 

middlewares/index.js

app.js

경매 시스템은 회원 가입로그인경매 상품 등록방 참여경매 진행으로 이루어져 있습니다. 

회원 가입, 로그인, 경매 상품 등록 페이지와 라우터를 만들어보겠습니다. 

 

그리고 프론트 코드를 복사해서 붙여넣고 마져 진행

 

경매를 위한 라우터와 컨트롤러

 

router use에서 res. locals.user = reg. user;로 모든 넌적스 템플릿에 사용자 정보를 변수로 집어 넣었습니다. 

이렇게 하면 res.render 메서드에 매번 user:rea. user를 하지 않아도 되므로 중복을 제거할 수 있습니다.


라우터는 GET , GET /join, GET / good, POST / good으로 이뤄져 있습니다. 

GET / 메인 화면 을 렌더링합니다.  렌더링할 때 경매가 진행 중인 상품 목록도 같이 불러옵니다. 

낙찰자의 아이디 SoldId)가 nu11이고 24시간 전(어제) 이후에 등록된 경매들이 현재 진행 중인 경매입니다.
GET /ioin과 GET good은 각각 회원 가입 화면과 상품 등록 화면을 렌더링합니다. 

POST /good 라 우터는 업로드한 상품을 처리하는 라우터이며, 상품 이미지 업로드 기능이 있어 multer 미들웨어 가 붙었습니다.
이제 npm start 명령어로 서버를 실행한 후 http://1ocalhost:8010에 접속하면 됩니다. 

회원 가 입 후 로그인을 하고 상품을 등록해봅시다.