728x90
1. npm install express mysql2 sequelize dotenv
2. npm install -D sequelize-cli nodemon prettier
3. npx sequelize init
4. 최상위 폴더에 prettierrc.js 만들기
//prettierrc.js
module.exports = {
singleQuote: true,
semi: true,
useTabs: false,
tabWidth: 2,
trailingComma: 'all',
printWidth: 80,
arrowParens: 'avoid',
};
7. .env 생성하기
MYSQL_USERNAME=
MYSQL_PASSWORD=
MYSQL_DATABASE=
MYSQL_HOST=
HOST = 127.0.0.1
PORT = 3000
8. .gitignore 생성
node_modules/
.env
9. app.js 생성
import express from 'express';
export class ExpressApp {
app = express();
constructor() {
this.setAppSettings();
}
setAppSettings = () => {
this.app.use(express.json());
};
}
10. init.js 생성
import dotenv from 'dotenv';
import Http from 'http';
import { ExpressApp } from './app.js';
import sequelize from './db/sequelize.js';
dotenv.config();
export class Server {
expressApp = new ExpressApp();
httpServer;
constructor() {
this.httpServer = new Http.Server(this.expressApp.app);
}
databaseConnection = () => {
return this.sequelizeAuthenticate().then(this.sequelizeSync);
};
sequelizeAuthenticate = () => {
// test connection
return sequelize.authenticate();
};
sequelizeSync = () => {
return sequelize.sync({ force: false });
};
runServer = async () => {
try {
await this.databaseConnection();
return this.serverListen();
} catch (e) {
return this.serverErrorHandler(e);
}
};
serverListen = () => {
const { PORT: port, HOST: host } = process.env;
return this.httpServer.listen(port, () => {
console.log(`Server is running on: http://${host}:${port}`);
});
};
serverErrorHandler = error => {
console.log('Server run error: ', error.message);
};
}
const server = new Server();
server.runServer();
11. models 지우고 db파일 생성
12. db/sequelize.js
import { Sequelize } from 'sequelize';
import dotenv from 'dotenv';
dotenv.config();
const env = process.env;
const sequelize = new Sequelize({
username: env.MYSQL_USERNAME,
password: env.MYSQL_PASSWORD,
database: env.MYSQL_DATABASE,
host: env.MYSQL_HOST,
dialect: 'mysql',
});
export default sequelize;
13. routes, controllers, services, repositories 디렉토리 생성
14. API 정하기 : README.md
items
상품 추가 API
POST api/items
상품 옵션 추가 API
POST api/items/options
상품 조회 API
GET api/items
상품 삭제 API
DELETE api/items/1
상품 수정 API
PATCH api/items/1
orders
상품 발주 API
POST api/orders
발주 상태 수정 API
PATCH api/orders/1
receipts
상품 주문 API
POST api/receipts
상품 주문 수정 API
PATCH api/receipts/1
'내일 배움 캠프 > kiosk' 카테고리의 다른 글
kiosk 6일차 8/1 주문 관리 (2) (0) | 2023.07.28 |
---|---|
kiosk 5일차 7/31 주문 관리 (0) | 2023.07.28 |
kiosk 4일차 7/28 상품 발주 (0) | 2023.07.27 |
kiosk 3일차 7/27 상품 관리 (2) (0) | 2023.07.26 |
kiosk 2일차 7/26 상품관리 (0) | 2023.07.26 |