기본 패키지 구성
기본 폴더구조 구성
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에 접속하면 됩니다.
회원 가 입 후 로그인을 하고 상품을 등록해봅시다.
'clone toy projects > node_expresss_chat' 카테고리의 다른 글
스케쥴링 구현 및 프로젝트 마무리 [흐름만 보기] (0) | 2023.08.30 |
---|---|
서버센트 이벤트 사용하기 [흐름만 보기] (0) | 2023.08.30 |
이미지를 포함한 채팅 (0) | 2023.08.30 |
채팅 기능 구현하기 (0) | 2023.08.30 |
미들웨어와 소켓 연결하기 (0) | 2023.08.30 |