Showing
3 changed files
with
61 additions
and
27 deletions
... | @@ -8,29 +8,34 @@ const {Post}=require('../models'); //게시물정보 db연결 | ... | @@ -8,29 +8,34 @@ const {Post}=require('../models'); //게시물정보 db연결 |
8 | 8 | ||
9 | //현재 로그인된 사용자의 게시물 배열 응답 | 9 | //현재 로그인된 사용자의 게시물 배열 응답 |
10 | router.get('/',auth,(req,res)=>{ | 10 | router.get('/',auth,(req,res)=>{ |
11 | + | ||
11 | Post.findAll({ | 12 | Post.findAll({ |
12 | - where:{userid: req.session.name} | 13 | + //where:{userid: req.session.name} |
13 | }) | 14 | }) |
14 | .then((result)=>{ | 15 | .then((result)=>{ |
16 | + //console.log(result); | ||
17 | + res.send(result); | ||
15 | //게시물이 0개인 경우 | 18 | //게시물이 0개인 경우 |
16 | - if(result === null || result === undefined){ | 19 | + // if(result === null || result === undefined){ |
17 | - console.log("해당유저의 게시물이 없습니다.") | 20 | + // console.log("해당유저의 게시물이 없습니다.") |
18 | - res.status(401).send("null"); | 21 | + // res.status(401).send("null"); |
19 | - } | 22 | + // } |
20 | - else{ | 23 | + // else{ |
21 | - console.log(result.length); | 24 | + // console.log(result.length); |
22 | - res.sendStatus(200); | 25 | + // res.sendStatus(200); |
23 | - } | 26 | + // } |
24 | }) | 27 | }) |
25 | }); | 28 | }); |
26 | 29 | ||
30 | + | ||
31 | + | ||
27 | //게시물 작성 | 32 | //게시물 작성 |
28 | router.post('/',auth,(req,res)=>{ | 33 | router.post('/',auth,(req,res)=>{ |
29 | try{ | 34 | try{ |
30 | Post.create({ | 35 | Post.create({ |
31 | userid : req.session.name, | 36 | userid : req.session.name, |
32 | - title : "프로트랑 맞추기", | 37 | + title : req.body.title, |
33 | - post:"프론트랑 맞추기", | 38 | + post: req.body.content, |
34 | status: false | 39 | status: false |
35 | }) | 40 | }) |
36 | console.log("게시"); | 41 | console.log("게시"); | ... | ... |
1 | - | 1 | +import Axios from 'axios'; |
2 | -import React, { useState} from 'react'; | 2 | +import React, { useState, useEffect} from 'react'; |
3 | import '../style/Board.scss' | 3 | import '../style/Board.scss' |
4 | import ReactHtmlParser from 'react-html-parser'; | 4 | import ReactHtmlParser from 'react-html-parser'; |
5 | import BoardModal from "../Modal/BoardModal"; | 5 | import BoardModal from "../Modal/BoardModal"; |
6 | 6 | ||
7 | function Board() { | 7 | function Board() { |
8 | const [viewContent,setViewContent] = useState([]); | 8 | const [viewContent,setViewContent] = useState([]); |
9 | - const onViewContentHandler = (data) => { | 9 | + |
10 | - setViewContent((viewContent.concat({...data}))) | 10 | + useEffect(()=>{ |
11 | - } | 11 | + Axios.get('/api/post').then((response)=>{ |
12 | + //console.log(response.data); | ||
13 | + setViewContent(response.data); | ||
14 | + }) | ||
15 | + },[viewContent]) | ||
12 | return ( | 16 | return ( |
13 | <div className="Board"> | 17 | <div className="Board"> |
14 | <div className="write-button"> | 18 | <div className="write-button"> |
15 | - <BoardModal onViewContentHandler={onViewContentHandler}/> | 19 | + <BoardModal/> |
16 | </div> | 20 | </div> |
17 | - {viewContent.map(element => | 21 | + <div className="contents"> |
18 | - <div class="ui segment"> | 22 | + {viewContent&&viewContent.map(element =>{ |
19 | - | 23 | + return <div className="ui segment"> |
20 | <h2>{element.title}</h2> | 24 | <h2>{element.title}</h2> |
21 | <div> | 25 | <div> |
22 | - {ReactHtmlParser(element.content)} | 26 | + {ReactHtmlParser(element.post)} |
23 | - </div> | ||
24 | </div> | 27 | </div> |
28 | + </div>} | ||
25 | )} | 29 | )} |
26 | </div> | 30 | </div> |
31 | + </div> | ||
27 | ); | 32 | ); |
28 | }; | 33 | }; |
29 | 34 | ... | ... |
1 | import React, {useState} from 'react' | 1 | import React, {useState} from 'react' |
2 | -import { Button, Header, Image, Modal } from 'semantic-ui-react' | 2 | +import Axios from 'axios' |
3 | +import { Button, Modal } from 'semantic-ui-react' | ||
3 | import {CKEditor} from "@ckeditor/ckeditor5-react"; | 4 | import {CKEditor} from "@ckeditor/ckeditor5-react"; |
4 | import ClassicEditor from "@ckeditor/ckeditor5-build-classic"; | 5 | import ClassicEditor from "@ckeditor/ckeditor5-build-classic"; |
5 | 6 | ||
6 | -function BoardModal({onViewContentHandler}) { | 7 | +function BoardModal() { |
7 | const handleClose = (event) => { | 8 | const handleClose = (event) => { |
8 | event.preventDefault(); | 9 | event.preventDefault(); |
9 | setOpen(false); | 10 | setOpen(false); |
... | @@ -11,7 +12,7 @@ function BoardModal({onViewContentHandler}) { | ... | @@ -11,7 +12,7 @@ function BoardModal({onViewContentHandler}) { |
11 | const [open, setOpen] = useState(false) | 12 | const [open, setOpen] = useState(false) |
12 | const [BoardContent, setBoardContent] = useState({ | 13 | const [BoardContent, setBoardContent] = useState({ |
13 | title: '', | 14 | title: '', |
14 | - content:'' | 15 | + content:'', |
15 | }) | 16 | }) |
16 | const getValue = e => { | 17 | const getValue = e => { |
17 | const {name, value} = e.target; | 18 | const {name, value} = e.target; |
... | @@ -21,6 +22,29 @@ function BoardModal({onViewContentHandler}) { | ... | @@ -21,6 +22,29 @@ function BoardModal({onViewContentHandler}) { |
21 | }) | 22 | }) |
22 | console.log(BoardContent); | 23 | console.log(BoardContent); |
23 | } | 24 | } |
25 | + const onSubmitHandler = () => { | ||
26 | + Axios.post('/api/post',{ | ||
27 | + title: BoardContent.title, | ||
28 | + content: BoardContent.content, | ||
29 | + }) | ||
30 | + .then((res)=>{ | ||
31 | + if(res.status === 200){ | ||
32 | + alert("게시글 작성을 완료하였습니다.") | ||
33 | + } | ||
34 | + }).catch((error) => { | ||
35 | + console.log(error.response) | ||
36 | + alert("게시글 작성을 실패하였습니다.") | ||
37 | + }) | ||
38 | + // console.log("ID", Id); | ||
39 | + // console.log("Password", Password); | ||
40 | + // console.log("MBTI", Personality); | ||
41 | + // if (Password !== PasswordCheck) { | ||
42 | + // return alert('비밀번호가 일치하지 않습니다.') | ||
43 | + // } | ||
44 | + // else{ | ||
45 | + // | ||
46 | + // } | ||
47 | + } | ||
24 | return ( | 48 | return ( |
25 | <Modal | 49 | <Modal |
26 | onClose={() => setOpen(false)} | 50 | onClose={() => setOpen(false)} |
... | @@ -34,7 +58,7 @@ function BoardModal({onViewContentHandler}) { | ... | @@ -34,7 +58,7 @@ function BoardModal({onViewContentHandler}) { |
34 | </Button>} | 58 | </Button>} |
35 | > | 59 | > |
36 | <Modal.Header>고민이 있나요?</Modal.Header> | 60 | <Modal.Header>고민이 있나요?</Modal.Header> |
37 | - <Modal.Content content> | 61 | + <Modal.Content > |
38 | <Modal.Description> | 62 | <Modal.Description> |
39 | <div className="form=wrapper"> | 63 | <div className="form=wrapper"> |
40 | <input className="title-input" | 64 | <input className="title-input" |
... | @@ -78,7 +102,7 @@ function BoardModal({onViewContentHandler}) { | ... | @@ -78,7 +102,7 @@ function BoardModal({onViewContentHandler}) { |
78 | content="글 작성하기" | 102 | content="글 작성하기" |
79 | labelPosition='right' | 103 | labelPosition='right' |
80 | icon='checkmark' | 104 | icon='checkmark' |
81 | - onClick={()=> onViewContentHandler(BoardContent)} | 105 | + onClick={onSubmitHandler} |
82 | positive | 106 | positive |
83 | /> | 107 | /> |
84 | </div> | 108 | </div> | ... | ... |
-
Please register or login to post a comment