member 테이블
CREATE TABLE member (
member_number INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
userid VARCHAR(30) UNIQUE KEY NOT NULL,
userpassword VARCHAR(100) NOT NULL,
username VARCHAR(100) NOT NULL,
phone VARCHAR(11) NOT NULL,
email VARCHAR(100) NOT NULL,
admin_check CHAR(1) DEFAULT 0,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
);
join.ejs
<%- include('../includes/head-nav.ejs')%>
<div class="container px-4 px-lg-5">
<div class="row gx-4 gx-lg-5 align-items-center my-5 ">
<form action="/joinAction" method="POST">
<label for="username"> 이름 </label>
<input type="text" name="username" id="username">
<label for="userid"> 아이디 </label>
<input type="text" name="userid" id="userid">
<label for="userpassword"> 비밀번호 </label>
<input type="password" name="userpassword" id="userpassword">
<label for="phone"> 전화번호 </label>
<input type="text" name="phone" id="phone" placeholder="숫자만 입력해주세요">
<label for="email"> 이메일 </label>
<input type="email" name="email" id="email">
<button type="submit" class="btn btn-primary"> 회원가입 </button>
</form>
</div>
</div>
<%- include('../includes/footer.ejs')%>
memberRoutes.js
const express = require('express');
const memberConroller = require('../controllers/member/join');
const routes = express.Router();
routes.get('/join', memberConroller.getJoin);
routes.post('/joinAction', memberConroller.AddJoinAction);
module.exports = routes;
controllers/member/join.js
const Member = require('../../models/member/join');
exports.getJoin = (req, res, next) => {
res.render("member/join", { pageTitle: "E-Book Join" });
};
exports.addJoinAction = (req, res, next) => {
let username = req.body.username;
let userid = req.body.userid;
let userpassword = req.body.userpassword;
let phone = req.body.phone;
let email = req.body.email;
console.log(username);
let member = new Member(username, userid, userpassword, phone, email);
member.addJoinMember();
res.redirect("/");
};
models/member/join.js
const mysql = require('mysql');
const conn = {
host: "127.0.0.1",
port: "3306",
user: "root",
password: "password",
database: "ebook"
};
let connection = mysql.createConnection(conn);
connection.connect();
class Member {
constructor(username, userid, userpassword, phone, email) {
this.username = username;
this.userid = userid;
this.userpassword = userpassword;
this.phone = phone;
this.email = email;
}
addJoinMember() {
var sql =
"INSERT INTO member (username, userid, userpassword, phone, email) VALUES (?, ?, ?, ?, ?)";
var param = [this.username, this.userid, this.userpassword, this.phone, this.email];
connection.query(sql, param, (err, row, fields) => {
if (err) {
console.log(err);
} else{
console.log('Success Join!!');
}
});
connection.end();
}
}
module.exports = Member;
npm install mysql
회원가입 페이지에서 데이터를 입력하면 DB에 값이 잘 저장된다.
app.js
const memberRoutes = require('./routes/memberRoutes');
app.use(memberRoutes);