// main
const express = require('express');
const userRouter = require('./router/user');
const app = express();
const PORT = 4000;
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
app.use('/users', userRouter);
app.get('/', (req, res) => {
res.send('회원 관리 서버 구현');
});
app.listen(PORT, () => {
console.log(`서버가 ${PORT} 에서 구동 중`);
});
// users.js
// @ts-check
const express = require('express');
const router = express.Router();
const add = express.Router();
const modify = express.Router();
const delet = express.Router();
router.use('/add', add);
router.use('/modify', modify);
router.use('/delete', delet);
// Temp Data
let USER_DATA = {
1: {
name: '홍길동',
gender: 'male',
},
2: {
name: '강아지',
gender: 'female',
},
};
// 회원 목록 확인
router.get('/', (req, res) => {
res.render('users.ejs', {
USER_DATA,
});
});
// 회원 추가
add.post('/', (req, res) => {
if (!req.query) return res.send('쿼리문 오류');
const newUser = {
name: req.query.name,
gender: req.query.gender,
};
USER_DATA[Object.keys(USER_DATA).length + 1] = newUser;
res.send('회원 추가 완료');
});
// 회원 수정
modify.put('/:id/:name/:gender', (req, res) => {
if (!req.params.id || !req.params.name || !req.params.gender)
return res.send('쿼리문 오류');
if (req.params.id in USER_DATA) {
USER_DATA[req.params.id] = {
name: req.params.name,
gender: req.params.gender,
};
res.send('회원 수정 완료');
}
});
// 회원 삭제
delet.delete('/:id', (req, res) => {
if (!req.params.id) return res.send('쿼리문 오류');
if (req.params.id in USER_DATA) {
delete USER_DATA[req.params.id];
res.send('회원 삭제 완료');
}
});
module.exports = router;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>회원 정보</title>
</head>
<body>
<h1>회원 정보 출력</h1>
<h3>
총 회원 수 --- <%= USER_DATA.length %>
</h3>
<ul>
<% if(USER_DATA.length <= 0) { %>
<li>
회원 정보가 없습니다.
</li>
<% } %>
<% for(key in USER_DATA) { %>
<li>
<p>
이름 : <%= USER_DATA[key].name %>
</p>
<p>
성별 : <%= USER_DATA[key].gender %>
</p>
<% } %>
</li>
</ul>
</body>
</html>
오늘 배운 내용 리마인드겸 해냄... 어렵다..🥲
'학원에서 배운 것 > node.js' 카테고리의 다른 글
KDT 5th 웹개발자 입문 수업 28일차 -2 (0) | 2023.03.15 |
---|---|
KDT 5th 웹개발 입문 수업 25일차 (0) | 2023.03.10 |
KDT 5th 웹개발 입문 수업 24일차 (0) | 2023.03.09 |
KDT 5th 웹 개발자 입문 수업 23일차 (0) | 2023.03.08 |
KDT 5th 웹개발자 입문 수업 22일차 (0) | 2023.03.07 |