app.js

app.use('/address', require('./routes/address'));

//데이타베이스 접속
var db = require('./db');
db.connect(function(err){
  if(err){
    console.log('데이타베이스 접속오류....');
    process.exit(1);
  }
});

module.exports = app;

app.js 파일에 위부분을 추가해서 연결했다.

db.js

var mysql = require('mysql'); 
var conn;
exports.connect=function() {
    conn=mysql.createPool({
        connectionLimit:100, 
        host:'localhost', 
        user:'web1', 
        password:'pass', 
        database:'webdb1' 
    });
}

exports.get=function(){
    return conn;
};

mysql에 있는 값을 불러옴.


주소목록 index

var express = require('express');
var router = express.Router();

var db=require('../db')

/* 주소목록 데이타 출력 */

router.get('/', function(req, res, next) {
    var sql = "select * from tbl_address"
    db.get().query(sql, function(err, rows){
        res.send(rows); //데이타 출력 send
    });
});

/* 주소등록 */
router.get('/insert', function(req, res){
    res.render('insert', {"title":"주소등록"}); //화면출력 render
});

/* 주소DB저장 */
router.post('/insert', function(req,res){
    var name = req.body.name;
    var tel = req.body.tel;
    var address = req.body.address;
    var sql ="insert into tbl_address(name,tel,address) values(?,?,?)";
    db.get().query(sql, [name,tel,address], function(err,result){
        res.redirect('/');
    });
    console.log(`${name}-${tel}-${address}`);
});
<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/common.css' />
    <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.1/handlebars.js"></script>
  </head>
  <body>
    <div id ="page">
      <div id ="top" style="width: 90%; height: 100px; ">

        <div id= "left">
          <div id ="main">
            <h3 id ="smallmenu" >메뉴</h3>
            </br>
            <h3 style="text-align: center;"><a href="/address/insert">주소등록</a></h3>
          </div>
        </div>
          <div id = "right">
        
          <h1><%= title %></h1>
        </div>
      </div>
   
    <div id = "center">
 
        <table id ="tbl"></table>
        <script id="temp" type="text/x-handlebars-template">
          <tr class = "title">
            <td width =100>번호</td>
            <td width =100>성명</td>
            <td width =200>전화번호</td>
            <td width =200>주소</td>
          </tr>
          
          <tr class = "row" onclick="location.href='/address/read?id='">
            <td></td>
            <td></td>
            <td></td>
            <td></td>
          </tr>
          
        </script>
     
   
      
</div>
<div id ="bottom">
  <h5>CopyRight 2022. 강깸 All Right Reserved.</h5>
  </div>
  </body>
  <script>
    getAddress();
    function getAddress(){
      $.ajax({
        type: "get",
        dataType : "json",
        url:"/address",
        success:function(data){
          var template = Handlebars.compile($("#temp").html());
          $("#tbl").html(template(data));
        }
      })
    }
  </script>
</html>

-> 주소목록 데이터를 출력하고 insert에 주소를 등록하고 DB에 저장한다. 주소목록


주소 등록 insert

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel='stylesheet' href='/stylesheets/common.css' />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>


    <title><%=title%></title>
</head>
<body>
    <div id ="page">
        <div id = "top">
            <h1><%=title%></h1>
        </div>
        <div id ="center">
            <form name = "frm" method="post">
                <table>
                    <tr>
                        <td class="title" width=100>이름</td>
                        <td width=500><input type="text" name="name"></td>
                    </tr>
                    <tr>
                        <td class="title" width=100>전화번호</td>
                        <td width=500><input type="text" name="tel"></td>
                    </tr>
                    <tr>
                        <td class="title" width=100>주소</td>
                        <td width=500><input type="text" name="address" size=50></td>
                    </tr>
                </table>
                <div id="buttons">
                    <input type="submit" value="저장" class="button">
                    <input type="reset" value="취소" class="button">
                    <input type="button" value="목록"  onClick="location.href='/'" class="button">
                </div>
            </form>
        </div>
    </div>
    
</body>
<script>
    $(frm).on("submit", function(e){
        e.preventDefault();
        let name =$(frm.name).val();
        let tel = $(frm.tel).val();
        let address=$(frm.address).val();
        if(name==""){
            alert("이름을 입력하세요!");
            $(frm.name).focus();
        }else if(tel==""){
            alert("전화번호를 입력하세요!");
            $(frm.tel).focus();
        }else if(address==""){
            alert("주소를 입력하세요!");
            $(frm.address).focus();
        }else {
            if(!confirm(`${name}:${tel}:${address}을(를) 저장하실래요?`)) return;
            frm.submit();
        }

    });
</script>
</html>

-> 주소를 등록하는곳, 목록버튼이있어 메인목록으로 돌아갈수있다.

주소등록


주소 정보 read

address

/* 특정아이디 주소 읽기 */
router.get('/read',function(req, res){
    var id = req.query.id;
    var sql = "select * from tbl_address where id=?"
    db.get().query(sql, [id], function(err,rows){
        console.log(rows[0]);
        res.render('read', {"title":"주소정보", "vo":rows[0]});
    });
    
});

read

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel='stylesheet' href='/stylesheets/common.css' />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>


    <title><%=title%></title>
</head>
<body>
    <div id ="page">
        <div id = "top">
            <h1><%=title%></h1>
        </div>
        <div id ="center">
            <form name = "frm" method="post" action ="update">
                <table>
                    <tr>
                        <td class="title" width=100>번호</td>
                        <td width=500><input type="text" name="id" value ="<%=vo.id%>" readonly></td>
                    </tr>
                    <tr>
                        <td class="title" width=100>이름</td>
                        <td width=500><input type="text" name="name" value ="<%=vo.name%>"></td>
                    </tr>
                    <tr>
                        <td class="title" width=100>전화번호</td>
                        <td width=500><input type="text" name="tel" value="<%=vo.tel%>"></td>
                    </tr>
                    <tr>
                        <td class="title" width=100>주소</td>
                        <td width=500><input type="text" name="address" size=50 value="<%=vo.address%>"></td>
                    </tr>
                </table>
                <div id="buttons">
                    <input type="submit" value="수정" class="button" style ="background-color: rgb(218, 78, 78);">
                    <input type="reset" value="취소" class="button">
                    <input type="reset" value="삭제" class="button" style ="background-color: rgb(218, 78, 78);">
                    <input type="button" value="목록"  onClick="location.href='/'" class="button">
                </div>
            </form>
        </div>
    </div>
    
</body>
<script>
    $(frm).on("submit", function(e){
        e.preventDefault();
        let name =$(frm.name).val();
        let tel = $(frm.tel).val();
        let address=$(frm.address).val();
        if(name==""){
            alert("이름을 입력하세요!");
            $(frm.name).focus();
        }else if(tel==""){
            alert("전화번호를 입력하세요!");
            $(frm.tel).focus();
        }else if(address==""){
            alert("주소를 입력하세요!");
            $(frm.address).focus();
        }else {
            if(!confirm(`${name}:${tel}:${address}을(를) 수정하실래요?`)) return;
            frm.submit();
        }

    });
</script>
</html>

-> 주소목록에서 특정아이디를 클릭하게되면 해당되는 정보를 불러온다. 여기서 주소를 수정하거나 삭제하는것도 가능하다.


주소수정

address

/* 특정아이디 수정하기 */
router.post('/update',function(req,res){
    var id = req.body.id;
    var name = req.body.name;
    var tel = req.body.tel;
    var address = req.body.address;
    var sql ="update tbl_address set name=?,tel=?,address=? where id=?";
    // console.log(`${id}\n${name}/n${tel}\n${address}`);
    db.get().query(sql,[name,tel,address,id],function(err, result){
        res.redirect('/'); //목록으로 이동
    });
});

주소삭제

read 추가 (read 안의 삭제불러오기)

 $("#btnDelete").on("click",function(){
        var id =$(frm.id).val();
        if(!confirm(`${id}을(를) 삭제하실래요?`)) return;
        frm.action= "delete";
        frm.submit();
    });

address

//특정아이디를 DB에서 삭제
router.post('/delete',function(req,res){
    var id = req.body.id;
    var sql ="delete from tbl_address where id=?";
    db.get().query(sql,[id],function(err,result){
        res.redirect('/');
    });
});

주소정보


성적목록 score

db에서 테이블로 만들었던 성적목록을 주소정보 밑에 보여지게할것이다.

address


//특정학생의 성적목록
router.get('/score',function(req,res){
    var id = req.query.id;
    var sql='select id,date_format(sdate, "%Y-%m-%d") fdate,kor,eng,mat,(kor+eng+mat) tot,(kor+eng+mat)/3 avg from tbl_score where id=? order by sdate desc';    db.get().query(sql,[id],function(err,rows){
        res.send(rows);
    });

});

read

<hr/>
            <h1 id ="score"><%=vo.name%> 성적</h1>
            <table id = "tbl">
            </table>
            <script id="temp" type="text/x-handlebars-template">
                <tr class = "title">
                    <td width=100>시험일</td>
                    <td width=80>국어</td>
                    <td width=80>영어</td>
                    <td width=80>수학</td>
                    <td width=80>총점</td>
                    <td width=80>평균</td>
                </tr>
                
                <tr class ="row">
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>

                

밑에 script

 var id = "<%=vo.id%>";

    getScore();
    function getScore(){
      $.ajax({
        type: "get",
        dataType : "json",
        url:"/address/score",
        data: {"id":id},
        success:function(data){
          var template = Handlebars.compile($("#temp").html());
          $("#tbl").html(template(data));
        }
      })
    }

누구의성적

태그:

카테고리:

업데이트:

댓글남기기