Select Git revision
Forked from
HyukSang Kwon / 1801_OS_assignment4
Source project has a limited visibility.
-
HyukSang Kwon authoredHyukSang Kwon authored
join.js 1.83 KiB
const express = require('express');
const bodyParser = require('body-parser');
const { body, validationResult } = require('express-validator');
const router = express.Router();
const session = require('express-session'); // express-session 추가
const mysql = require('mysql');
const path = require('path');
const app = express();
const port = 3000;
const db = require('./db');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 'static' 폴더에서 정적 파일 제공
app.use('/static', express.static(path.join(__dirname, 'static')));
app.use(bodyParser.urlencoded({ extended: true })); // body-parser 사용
// 'views' 폴더를 템플릿 엔진의 기본 경로로 설정
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html'); // 템플릿 엔진을 EJS로 설정
app.engine('html', require('ejs').renderFile);
// 회원가입 폼 페이지
router.get('/join', (req, res) => {
res.sendFile(path.join(__dirname, 'views', 'BBFP_Join.html'));
});
const validateData = [
body('name').notEmpty().withMessage('이름을 입력하세요'),
body('phone').notEmpty().withMessage('전화번호를 입력하세요'),
body('password').notEmpty().withMessage('비밀번호를 입력하세요'),
];
router.post('/join', validateData, (req, res) => {
const errors = validationResult(req);
const { name, phone, password } = req.body; // password 값을 받아옴
const sql = 'INSERT INTO users (Name, Phone, password) VALUES (?, ?, sha2(?, 256))';
db.query(sql, [name, phone, password], (err, result) => {
if (err) {
console.error('Error inserting into database:', err); // 에러 발생 시 로그
return res.status(500).send('Internal Server Error');
}
const userId = result.insertId;
res.json({ userId });
});
});
module.exports = router;