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 TABLE_NAME = ''; // 데이터베이스 연결 설정 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 ${TABLE_NAME} 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 ${TABLE_NAME} 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 ${TABLE_NAME} 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 }); } } }; // 라우팅 설정 router.post('/getDocumentVersionList', controller.getDocumentVersionList); router.post('/getDocumentVersionData', controller.getDocumentVersionData); router.delete('/getDocumentVersionData', controller.deleteDocumentVersionData); app.use(bodyParser.json()); app.use('/', router); app.listen(8080);