Showing
4 changed files
with
76 additions
and
3 deletions
| ... | @@ -86,6 +86,13 @@ | ... | @@ -86,6 +86,13 @@ |
| 86 | </div> | 86 | </div> |
| 87 | <div class="col-lg-4"> | 87 | <div class="col-lg-4"> |
| 88 | <div class="features-icons-item mx-auto mb-5 mb-lg-0 mb-lg-3"> | 88 | <div class="features-icons-item mx-auto mb-5 mb-lg-0 mb-lg-3"> |
| 89 | + <div class="features-icons-icon d-flex"><i class="bi-window m-auto text-primary"></i></div> | ||
| 90 | + <h3>Fully Responsive</h3> | ||
| 91 | + <p class="lead mb-0">This theme will look great on any device, no matter the size!</p> | ||
| 92 | + </div> | ||
| 93 | + </div> | ||
| 94 | + <div class="col-lg-4"> | ||
| 95 | + <div class="features-icons-item mx-auto mb-5 mb-lg-0 mb-lg-3"> | ||
| 89 | <div class="features-icons-icon d-flex"><i class="bi-layers m-auto text-primary"></i></div> | 96 | <div class="features-icons-icon d-flex"><i class="bi-layers m-auto text-primary"></i></div> |
| 90 | <h3>Bootstrap 5 Ready</h3> | 97 | <h3>Bootstrap 5 Ready</h3> |
| 91 | <p class="lead mb-0">Featuring the latest build of the new Bootstrap 5 framework!</p> | 98 | <p class="lead mb-0">Featuring the latest build of the new Bootstrap 5 framework!</p> | ... | ... |
| ... | @@ -15,14 +15,19 @@ | ... | @@ -15,14 +15,19 @@ |
| 15 | 15 | ||
| 16 | sql 사용 파일<br> | 16 | sql 사용 파일<br> |
| 17 | router/login/index.js<br> | 17 | router/login/index.js<br> |
| 18 | - router/register/index.js<br><br> | 18 | + router/register/index.js<br> |
| 19 | + router/board/index.js<br><br> | ||
| 19 | 20 | ||
| 20 | DB 구조(*ID, password, type) -> 형식에 맞게 추가<br> | 21 | DB 구조(*ID, password, type) -> 형식에 맞게 추가<br> |
| 21 | *ID varchar(20), password varchar(20), type varchar(10) // type이 운영자인 경우 서버에서 변경<br> | 22 | *ID varchar(20), password varchar(20), type varchar(10) // type이 운영자인 경우 서버에서 변경<br> |
| 22 | 추가된 형식에 맞는 로그인 및 세션 등 변경<br> | 23 | 추가된 형식에 맞는 로그인 및 세션 등 변경<br> |
| 23 | 24 | ||
| 25 | +DB구조 - board에서 사용됨(*idx, name, title, content, regdate, modidate, passwd, hit)<br> | ||
| 26 | +*idx int, name varchar(50), title varchar(50), content mediumtext, regdate datetime, modidate datetime, passwd varchar(50), hit int<br> | ||
| 27 | + | ||
| 28 | + | ||
| 24 | LF 오류시 git config --global core.autocrlf true 입력<br><br> | 29 | LF 오류시 git config --global core.autocrlf true 입력<br><br> |
| 25 | 30 | ||
| 26 | 31 | ||
| 27 | -최종 수정: 2021-11-16 18:54<br> | ||
| 28 | -최종 수정 내용: 경로 지정 수정 | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 32 | +최종 수정: 2021-11-17 06:01<br> | ||
| 33 | +최종 수정 내용: 게시판의 글쓰기 및 글 열람 기능 추가. | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -42,4 +42,14 @@ router.post('/write', function(req,res,next){ | ... | @@ -42,4 +42,14 @@ router.post('/write', function(req,res,next){ |
| 42 | }); | 42 | }); |
| 43 | }) | 43 | }) |
| 44 | 44 | ||
| 45 | +router.get('/read/:idx', function(req,res,next){ | ||
| 46 | + var idx = req.params.idx | ||
| 47 | + var sql = "select idx, name, title, content, date_format(modidate,'%Y-%m-%d %H:%i:%s') modidate, " + | ||
| 48 | + "date_format(regdate,'%Y-%m-%d %H:%i:%s') regdate,hit from board where idx=?"; | ||
| 49 | + board.query(sql,[idx], function(err,row){ | ||
| 50 | + if(err) console.error(err) | ||
| 51 | + res.render('read.ejs', {title:"글 상세", row:row[0]}) | ||
| 52 | + }) | ||
| 53 | +}) | ||
| 54 | + | ||
| 45 | module.exports = router; | 55 | module.exports = router; |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
views/read.ejs
0 → 100644
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html> | ||
| 3 | +<head> | ||
| 4 | + <title><%= title %></title> | ||
| 5 | + <link rel='stylesheet' href='/stylesheets/style.css'/> | ||
| 6 | +</head> | ||
| 7 | +<body> | ||
| 8 | +<h1><%= title %></h1> | ||
| 9 | + | ||
| 10 | +<form action="/board/update" method="post"> | ||
| 11 | + <table border="1"> | ||
| 12 | + <input type="hidden" name="idx" value="<%=row.idx%>"/> | ||
| 13 | + <tr> | ||
| 14 | + <td>작성자</td> | ||
| 15 | + <td><input type="text" name="name" id="name" value="<%=row.name%>" required/></td> | ||
| 16 | + </tr> | ||
| 17 | + <tr> | ||
| 18 | + <td>제목</td> | ||
| 19 | + <td><input type="text" name="title" id="title" value="<%=row.title%>" required/></td> | ||
| 20 | + </tr> | ||
| 21 | + <tr> | ||
| 22 | + <td>내용</td> | ||
| 23 | + <td><textarea name="content" id="content" cols="30" rows="10" required><%=row.content%></textarea></td> | ||
| 24 | + </tr> | ||
| 25 | + <tr> | ||
| 26 | + <td>패스워드</td> | ||
| 27 | + <td><input type="password" name="passwd" id="passwd" required/></td> | ||
| 28 | + </tr> | ||
| 29 | + <tr> | ||
| 30 | + <td>변경일</td> | ||
| 31 | + <td><%=row.modidate%></td> | ||
| 32 | + </tr> | ||
| 33 | + <tr> | ||
| 34 | + <td>등록일</td> | ||
| 35 | + <td><%=row.regdate%></td> | ||
| 36 | + </tr> | ||
| 37 | + <tr> | ||
| 38 | + <td>조회수</td> | ||
| 39 | + <td><%=row.hit%></td> | ||
| 40 | + </tr> | ||
| 41 | + <tr> | ||
| 42 | + <td colspan="2"> | ||
| 43 | + <button type="submit">글 수정</button> | ||
| 44 | + <a href="/board/list">목록</a> | ||
| 45 | + </td> | ||
| 46 | + </tr> | ||
| 47 | + </table> | ||
| 48 | +</form> | ||
| 49 | + | ||
| 50 | +</body> | ||
| 51 | +</html> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment