
글쓰기
<div>
<BoardWrite handlelist={getList}></BoardWrite>
<br />
<BoardList
boardlist={boardlist}
actionmode={actionMode}
handlelist={getList}
handledetail={handleDetail}
handleupdateform={handleUpdateForm}
></BoardList>
</div>
BoardWrite.js
<script>
import { useRef } from "react";
import axios from "axios";
const BoardWrite = ({ handlelist }) => {
const titleRef = useRef();
const writerRef = useRef();
const contentRef = useRef();
const handleInsert = () => {
// console.log("handleInsert =>", titleRef.current.value);
if (titleRef.current.value === "" || titleRef.current.value === undefined) {
alert("제목을 입력하세요!!!");
titleRef.current.focus();
return false;
}
if (
writerRef.current.value === "" ||
writerRef.current.value === undefined
) {
alert("글쓴이를 입력하세요!!!");
writerRef.current.focus();
return false;
}
if (
contentRef.current.value === "" ||
contentRef.current.value === undefined
) {
alert("내용을 입력하세요!!!");
contentRef.current.focus();
return false;
}
axios
.post("http://localhost:8008/insert", {
title: titleRef.current.value,
writer: writerRef.current.value,
content: contentRef.current.value,
})
.then(() => {
// console.log("handleInsert =>", res);
handlelist();
titleRef.current.value = "";
writerRef.current.value = "";
contentRef.current.value = "";
})
.catch((e) => {
console.error(e);
});
};
</script>
<script>
app.post("/insert", (req, res) => {
console.log("/insert", req.body);
var writer = req.body.writer;
var title = req.body.title;
var content = req.body.content;
const sqlQuery =
"INSERT INTO BOARD_TBL (BOARD_WRITER, BOARD_TITLE, BOARD_CONTENT) values(?,?,?);";
// ? : 파라미터로 전달받겠다
// [writer, title, content]
db.query(sqlQuery, [writer, title, content], (err, result) => {
// insert는 반환 x
// null값 반환
res.send(result);
});
});
</script>
<div>
<form>
<table border="1" width="700px" align="center">
<tr>
<td width="100px">제목</td>
<td align="left" width="550px">
<input
type="text"
name="title"
size="68"
ref={titleRef}
placeholder="제목을 입력하세요"
></input>
</td>
</tr>
<tr>
<td width="100px">글쓴이</td>
<td align="left" width="550px">
<input
type="text"
name="writer"
size="68"
ref={writerRef}
placeholder="글쓴이을 입력하세요"
></input>
</td>
</tr>
<tr>
<td>내용</td>
<td align="left">
<textarea
rows="5"
cols="70"
name="content"
ref={contentRef}
placeholder="내용을 입력하세요"
></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input
type="button"
value="글쓰기"
onClick={handleInsert}
></input>
<input type="reset" value="취소"></input>
</td>
</tr>
</table>
</form>
</div>
);


