Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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);
  • No labels