React, MySQL, Node.js를 이요하여 사용 중인 MySQL에서 원하는 데이터를 가져와 보도록 하자.
root폴더에 server폴더를 만들고 그 안에 server.js파일을 만든다.
server.js 파일은 node.js이기 때문에 작업할 때 수정돼서 확인하려면 서버를 껐다가 다시 켜주어야 한다.
터미널에서 server 폴더 경로로 가서 'node server' 명령어를 입력하면 서버가 실행된다.
server.js 파일을 만든 후 express, cors, mysql 라이브러리 등을 npm으로 설치해주고 나의 DB에 맞는 정보를 입력해주면 된다.
// MySQL 연결
const db = mysql.createPool({
host: "127.0.0.1", // 호스트
user: "root", // 데이터베이스 계정
password: "", // 데이터베이스 비밀번호
database: "star", // 사용할 데이터베이스
});
app.use(cors({
origin: "*", // 출처 허용 옵션
credentials: true, // 응답 헤더에 Access-Control-Allow-Credentials 추가
optionsSuccessStatus: 200, // 응답 상태 200으로 설정
}))
// post 요청 시 값을 객체로 바꿔줌
app.use(express.urlencoded({ extended: true }))
// 서버 연결 시 발생
app.listen(PORT, () => {
console.log(`server running on port ${PORT}`);
});
url에 접속해서 조회된 데이터도 확인이 가능하고 위에서 콜백으로 작성한 res.send 코드로 터미널에서도 조회된 데이터를 확인할 수 있다.
axios 라이브러리를 이용하여 간단하게 호출해 볼 수 있다.
axios의 get 파라미터로 url을 입력하면 해당 경로에서 데이터를 가져올 수 있다.
MySQL로부터 데이터를 받을 수 있다.
<Button onClick={() => {
// npm i axios | yarn add axios
axios.get("http://localhost:3001/api/company")
.then((res: any) => {
console.log(res);
}).catch((err: any) => {
console.log(err);
})
}}>api 호출하기</Button>
위 방식은 단순히 get방식으로 조회만 해보았지만 post, put, delete 방식도 있다.