server.js
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql2/promise');
const _ = require('lodash');
const app = express();
const router = express.Router();
// 데이터베이스 연결 설정
const pool = mysql.createPool({
host: 'localhost',
user: '', // 사용자명
password: '', // 비밀번호
database: '', // 데이터베이스
});
const controller = {
// 문서 버전 목록 가져오기
getDocumentVersionList: async (req, res) => {
const id = _.get(req, ['body', 'id']);
try {
const [results] = await pool.query('SELECT * FROM document_versions WHERE id = ?', [id]);
const formattedData = results.map(result => ({
id: result._id,
date: result.createdAt,
author: result.name
}));
res.json(formattedData);
} catch (error) {
res.status(500).json({ message: 'Internal server error', error: error.message });
}
},
// 문서 버전 데이터 가져오기
getDocumentVersionData: async (req, res) => {
const id = _.get(req, ['body', 'id']);
try {
const [result] = await pool.query('SELECT json FROM document_versions WHERE _id = ?', [id]);
if (result.length > 0) {
res.json(result[0].json);
} else {
res.status(404).json({ message: 'Document not found.' });
}
} catch (error) {
res.status(500).json({ message: 'Internal server error', error: error.message });
}
},
// 문서 버전 데이터 삭제
deleteDocumentVersionData: async (req, res) => {
const id = _.get(req, ['body', 'id']);
try {
const [result] = await pool.query('DELETE FROM document_versions WHERE _id = ?', [id]);
if (result.affectedRows > 0) {
res.status(200).json({ message: 'Document deleted successfully.' });
} else {
res.status(404).json({ message: 'Document not found.' });
}
} catch (error) {
res.status(500).json({ message: 'Internal server error', error: error.message });
}
}
};
app.use(bodyParser.json());
app.use('/', router);
// 라우팅 설정
router.post('/getDocumentVersionList', controller.getDocumentVersionList);
router.post('/getDocumentVersionData', controller.getDocumentVersionData);
router.delete('/getDocumentVersionData', controller.deleteDocumentVersionData);
// 서버 실행
app.listen(8080);