일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- GPT-4
- PCA
- Machine Learning
- 머신러닝
- LG Aimers
- 회귀
- 해커톤
- AI
- 분류
- 오블완
- regression
- 티스토리챌린지
- 지도학습
- OpenAI
- LG
- deep learning
- Classification
- gpt
- ChatGPT
- supervised learning
- LG Aimers 4th
- LLM
- 딥러닝
Archives
- Today
- Total
SYDev
[Express] 5. Model 본문
데이터베이스 호출문 분리
models/homeModel.js 파일 생성 후 DB 관련 문장을 main.js에서 옮겨옴
파일명: homeModel.js
require('dotenv').config();
const mysql = require('mysql2/promise');
const db = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
});
/*
async function home() {
const query = 'SELECT * FROM Topics;'; //테이블에 추가한 요소들 읽기(*는 전체 출력을 의미)
const topics = await db.query(query);
}
*/
//위 함수를 모듈 형태로 작성
module.exports = {
home: async() => {
const query = 'SELECT * FROM Topics;';
const topics = await db.query(query);
return topics[0];
}
}
파일명: main.js
const express = require('express');
const app = express();
const port = 3000;
app.set('view engine', 'ejs');
app.set('views', 'views');
const homeModel = require('./models/homeModel.js'); //homeModels.js 파일을 불러오기
app.get('/', async (req, res) => {
const topics = await homeModel.home(); //불러온 모듈에 존재하는 함수 이용
res.render('index.ejs', {topics: topics}); //home 함수가 topics[0]을 리턴하므로 기존 [0]은 제외
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});
>> 모듈에서 DB 정보를 불러오고 topics에 저장
>> 코드 길이가 간결하게 줄어든 것을 확인할 수 있다.
'대딩코딩 > 웹개발 스터디' 카테고리의 다른 글
[Express] 7. Read Topic (1) | 2023.12.01 |
---|---|
[Express] 6. Controller (0) | 2023.12.01 |
[Express] 4. View (0) | 2023.12.01 |
[Express] 3. Template과 DB연결 (1) | 2023.12.01 |
[Express] 2. HelloWorld (0) | 2023.11.30 |