반응형
1. mysql community 버전 다운로드
2. mysql 설치하기
3. 환경변수 설정
4. 데이터베이스 초기화
https://tiny-immj.tistory.com/79
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 프로젝트 폴더를 생성
> 생성한 프로젝트 폴더로 이동
> 초기화
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
반응형
'프로젝트 기록 > React, Node.js를 이용한 게시판 만들기' 카테고리의 다른 글
useState, useEffect 이해, Counter 만들기 - React, Node.js 프로젝트 (0) | 2024.10.24 |
---|---|
React 컴포넌트 재사용하기, props와 state - React, Node.js 프로젝트 (0) | 2024.10.23 |
Axios, CORS 설정을 적용한 React, Node.js 프로젝트 (1) | 2024.10.19 |
1. React, node.js를 사용한 게시판 만들기 - db 세팅 (2) | 2024.10.10 |
React, node.js를 이용한 기초 프로젝트 생성(for mac) (6) | 2024.10.03 |