본문 바로가기
프로젝트 기록/React, Node.js를 이용한 게시판 만들기

2. React, Node.js를 이용한 게시판 만들기 - MySQL 연결 및 CRUD 작성

by jeong11 2024. 10. 18.
반응형

 

1. mysql community 버전 다운로드

2. mysql 설치하기 

3. 환경변수 설정

4. 데이터베이스 초기화

https://tiny-immj.tistory.com/79

 

React와 node.js를 사용한 게시판 만들기 - db 세팅

이전에 node.js, npm, git 세팅을 하고 기초 프로젝트를 만들었다https://tiny-immj.tistory.com/78 React와 node.js를 이용한 기초 프로젝트 생성(for mac)1. 개발 세팅 준비1-1. Node.js 설치하기 https://nodejs.org/ Node.j

tiny-immj.tistory.com

 

 

1. mysql community 버전 다운로드

2. mysql 설치하기 

3. 환경변수 설정

4. 데이터베이스 초기화

5. Node.js 프로젝트 생성

6. Node.js에서 MySQL 연결 및 테스트

7. DB 파일 설정

8. 기본 CRUD 생성

순서로 진행


5. Node.js 프로젝트 생성

터미널을 새로 열어 진행

 

1) Node.js 프로젝트 폴더 만들기

md node-mysql-app
cd node-mysql-app
npm init -y

각 명령어 설명

> Node.js 프로젝트 폴더를 생성 

> 생성한 프로젝트 폴더로 이동

> 초기화

 

node-mysql-app 생성

 

2) MySQL 패키지 설치 

npm install mysql

 

3) express 웹서버 프레임워크 설치

npm install express

 

6. 연결 및 실행 테스트

 

1) VSCode에서 File - Open Folder - 생성해준 프로젝트 폴더 경로로 들어가

NODE-MYSQL-APP 선택

 

2) 실행 테스트 - app.js 생성 

const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());

app.get('/', (req, res)=>
{
    res.send(`<h2>welcome to server</h2>`);
});

app.listen(port, ()=>
{
   console.log(`SERVER 실행됨 ${port}`); 
});

 

> 터미널에  node app.js 실행

node app.js

 

 

서버 화면 오픈

 

 

7. DB 파일 설정 - 

4) db.js 파일을 생성 > MySQL과 Node.js를 연결하는 코드

 

// db.js
const mysql = require('mysql');

const connection = mysql.createConnection({
    host: '%',
    user: 'nodejs',
    password: 'ReactNode1!', // MySQL 사용자 생성 시 입력한 비번
    database: 'my_database'
});

connection.connect((err) => {
    if (err) {
        console.error('Error connecting to MySQL:', err);
        return;
    }
    console.log('Connected to MySQL database');
});

module.exports = connection;

 

 

8. 기본 CRUD 생성

1) app.js 수정 

> Create 기능 (데이터 생성)

const express = require('express');
const connection = require('./db'); // MySQL 연결 설정 파일
const app = express();

app.use(express.json()); // JSON 데이터 처리

// 사용자 생성 API
app.post('/users', (req, res) => {
    const { name, email, password } = req.body;
    const query = 'INSERT INTO users (name, email, password) VALUES (?, ?, ?)';
    
    connection.query(query, [name, email, password], (err, result) => {
        if (err) {
            return res.status(500).send('Error creating user');
        }
        res.status(201).send('User created successfully');
    });
});

app.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

 

 

> Read (조회)

// 사용자 목록 조회 API
app.get('/users', (req, res) => {
    const query = 'SELECT * FROM users';
    
    connection.query(query, (err, results) => {
        if (err) {
            return res.status(500).send('Error retrieving users');
        }
        res.json(results);
    });
});

 

> Update(수정)

// 사용자 정보 수정 API
app.put('/users/:id', (req, res) => {
    const { id } = req.params;
    const { name, email, password } = req.body;
    const query = 'UPDATE users SET name = ?, email = ?, password = ? WHERE id = ?';
    
    connection.query(query, [name, email, password, id], (err, result) => {
        if (err) {
            return res.status(500).send('Error updating user');
        }
        res.send('User updated successfully');
    });
});

 

> Delete(삭제)

// 사용자 삭제 API
app.delete('/users/:id', (req, res) => {
    const { id } = req.params;
    const query = 'DELETE FROM users WHERE id = ?';
    
    connection.query(query, [id], (err, result) => {
        if (err) {
            return res.status(500).send('Error deleting user');
        }
        res.send('User deleted successfully');
    });
});

 

 

*에러 해결*

https://tiny-immj.tistory.com/80

 

Node.js에서 MySQL을 접근하는 에러 해결

* 에러 해결하기 *Node.js에서 MySQL을 접근하려고 하니 다음과 같은 오류 발생   에러 내용 :  Error connecting to MySQL: Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; co

tiny-immj.tistory.com

 

반응형