Page tree
Skip to end of metadata
Go to start of metadata
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);
  • No labels