Skip to content
Snippets Groups Projects
Commit 73f31dfa authored by Jinyeong Kim's avatar Jinyeong Kim
Browse files

fix user router

parent 53331550
No related branches found
No related tags found
1 merge request!19Ws to test_usercontroller
......@@ -34,15 +34,18 @@ const User = require('./models/user');
const Trip = require('./models/trips');
//Favorite define
const Favorite = require('./models/favorite');
//사용자 관리 라우트
const userManagementRoutes = require('./route/userManagement');
// JSON 요청 본문을 파싱하는 미들웨어 추가
app.use(express.json());
//비밀번호 변경 라우트 추가
app.use('/conf_password',passwordRoutes);
//이름 변경 라우트
app.use('/conf_name', confNameRoutes);
//회원 탈퇴 라우트
app.use('/del_user', deleteUser);
// app.use('/conf_password',passwordRoutes);
// //이름 변경 라우트
// app.use('/conf_name', confNameRoutes);
// //회원 탈퇴 라우트
// app.use('/del_user', deleteUser);
//사용자 관리 라우트
app.use('/userManagement', userManagementRoutes);
//여행 라우트
const tripRoutes = require('./route/tripRoute'); // 라우트 파일 경로
// Routes
......@@ -59,9 +62,11 @@ app.use('/favorites', favoriteRoutes);
const authenticateToken = require('./middleware/authMiddleware.js');
// 보호된 라우트에 미들웨어 적용
app.use('/conf_password', authenticateToken, passwordRoutes);
app.use('/conf_name', authenticateToken, confNameRoutes);
app.use('/del_user', authenticateToken, deleteUser);
// app.use('/conf_password', authenticateToken, passwordRoutes);
// app.use('/conf_name', authenticateToken, confNameRoutes);
// app.use('/del_user', authenticateToken, deleteUser);
app.use('/userManagement', authenticateToken, userManagementRoutes);
//확인
console.log('GOOGLE_CLIENT_ID:', process.env.GOOGLE_CLIENT_ID);
......
......@@ -2,11 +2,70 @@ const express = require('express');
const User = require('../models/user');
const Trip = require('../models/trips');
const Review = require('../models/review');
const bcrypt = require('bcrypt');
const path = require('path'); // 경로 처리 모듈 추가
const router = express.Router();
// router.get('/change', (req, res) => {
// // 닉네임 변경 HTML 파일 반환
// res.sendFile(path.join(__dirname, '../public/conf_name.html')); // HTML 파일 경로 설정
// });
//사용자 이름 변경(닉네임)
exports.changeName = async (req, res) => {
const { name, newName } = req.body;
const user = await User.findOne({ name });
try {
if (!name || !newName) {
return res.status(400).json({message: '유효하지 않은 요청입니다.'});
}
user.name = newName;
await user.save();
res.status(200).json({ message: ' 이름이 성공적으로 변경되었습니다.', user});
console.log('이름 변경 완료', user);
} catch(error) {
console.error('이름 변경 오류', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.'});
}
};
// 비밀번호 변경
exports.changePassword = async (req, res) => {
const { email, oldPassword, newPassword } = req.body;
try {
const user = await User.findOne({ email });
if (!user || !user.password) {
return res.status(400).json({ message: '사용자를 찾을 수 없거나 잘못된 요청입니다.' });
}
const isMatch = await bcrypt.compare(oldPassword, user.password);
if (!isMatch) {
return res.status(400).json({ message: '기존 비밀번호가 일치하지 않습니다.' });
}
const hashedPassword = await bcrypt.hash(newPassword, 10);
user.password = hashedPassword;
await user.save();
res.status(200).json({ message: '비밀번호가 성공적으로 변경되었습니다.' });
console.log('비밀번호 변경 완료',user);
} catch (error) {
console.error('비밀번호 변경 오류:', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' });
}
};
// 사용자 삭제
router.delete('/:userId', async (req, res) => {
exports.deleteUser = async (req, res) => {
const { userId } = req.params;
try {
......@@ -19,7 +78,6 @@ router.delete('/:userId', async (req, res) => {
// 사용자가 생성한 여행 데이터 삭제 또는 상태 변경
await Trip.deleteMany({ create_by: userId });
//사용자가 작성한 리뷰 제거
//사용자가 삭제되면 삭제되나..?
await Review.deleteMany({ create_by: userId});
// 사용자가 공동 작업자로 포함된 경우 업데이트
......@@ -33,6 +91,7 @@ router.delete('/:userId', async (req, res) => {
console.error('사용자 삭제 오류:', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' });
}
});
};
module.exports = router;
\ No newline at end of file
const express = require('express');
const User = require('../models/user');
const bcrypt = require('bcrypt');
const path = require('path'); // 경로 처리 모듈 추가
const router = express.Router();
router.get('/change', (req, res) => {
// 닉네임 변경 HTML 파일 반환
res.sendFile(path.join(__dirname, '../public/conf_name.html')); // HTML 파일 경로 설정
});
//사용자 이름 변경(닉네임)
router.post('/change', async (req, res) => {
const { name, newName } = req.body;
const user = await User.findOne({ name });
try {
if (!name || !newName) {
return res.status(400).json({message: '유효하지 않은 요청입니다.'});
}
user.name = newName;
await user.save();
res.status(200).json({ message: ' 이름이 성공적으로 변경되었습니다.', user});
console.log('이름 변경 완료', user);
} catch(error) {
console.error('이름 변경 오류', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.'});
}
});
module.exports = router;
\ No newline at end of file
const express = require('express');
const bcrypt = require('bcrypt');
const User = require('../models/user'); // User 모델 가져오기
const path = require('path'); // 경로 처리 모듈 추가
const router = express.Router();
router.get('/change', (req, res) => {
// 비밀번호 변경 HTML 파일 반환
res.sendFile(path.join(__dirname, '../public/conf_password.html')); // HTML 파일 경로 설정
});
// 비밀번호 변경 로직
router.post('/change', async (req, res) => {
const { email, oldPassword, newPassword } = req.body;
try {
const user = await User.findOne({ email });
if (!user || !user.password) {
return res.status(400).json({ message: '사용자를 찾을 수 없거나 잘못된 요청입니다.' });
}
const isMatch = await bcrypt.compare(oldPassword, user.password);
if (!isMatch) {
return res.status(400).json({ message: '기존 비밀번호가 일치하지 않습니다.' });
}
const hashedPassword = await bcrypt.hash(newPassword, 10);
user.password = hashedPassword;
await user.save();
res.status(200).json({ message: '비밀번호가 성공적으로 변경되었습니다.' });
console.log('비밀번호 변경 완료',user);
} catch (error) {
console.error('비밀번호 변경 오류:', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' });
}
});
module.exports = router;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment