티스토리 뷰
반응형
1. LTS로 Node 먼저 설치하기
2. 초기화 작업 및 express 설치
빈 폴더를 VSCode로 열어서 아래의 명령어를 각각 실행해준다.
npm init -y
npm install express
대충 이런 모양이 나오게 될것이다.
3. 서버구성하기
서버니까 DB와 연동되어 호출 하는 것 까지 한방에 해봅시다!!
우선 추가적으로 필요한 모듈 설치
npm install mysql2
npm install cors
index.js는 아래와 같이 구성
// db 설정
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'localhost',
port: '3306',
user: 'root',
password: '',
database: '',
})
// express 불러와서 인스턴스 생성
const express = require('express');
const app = express();
// 포트 정보
const port = 3000;
// 요청 파라미터 받기(request body 접근하기 위함)
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
const cors = require('cors');
const corsOptions = {
origin: '*', //모든 출처 허용 옵션. true를 써도 된다
credentials: true,
};
app.use(cors(corsOptions));
// 라우트 설정
// HTTP GET 방식으로 '/' 경로를 요청하였을 때
// Hello World!라는 문자열을 결과값으로 보냄
app.get('/', (req, res) => {
res.send('Hello World!');
});
//DB 데이터 조회
app.get('/users', (req, res) => {
connection.query('SELECT * from user', (error, rows) => {
if (error) throw error;
console.log('User info is: ', rows);
res.send(rows);
});
});
//DB 특정 데이터 조회
app.get('/users/:id', (req, res) => {
let sql = 'SELECT * FROM USER WHERE ID = ?';
connection.query(sql, [req.params.id], (error, rows) => {
if (error) throw error;
console.log('User info is: ', rows);
res.send(rows);
});
});
//DB 데이터 삽입
app.post('/users/add', (req, res) => {
let addUser = {
id: req.body.id,
name: req.body.name,
password: req.body.password,
}
let sql = 'INSERT INTO USER SET ?';
connection.query(sql, addUser, (error, result) => {
if (error) throw error;
res.send('user added...');
})
})
//DB 데이터 업데이트
app.put('/users/:id', (req, res) => {
let newName = req.body.name;
let sql = 'UPDATE USER SET NAME = ? WHERE ID = ?';
connection.query(sql, [newName, req.params.id], (error, result) => {
if (error) throw error;
console.log(`${req.params.id} user updated...`);
res.send(`${req.params.id} user updated...`);
});
});
//DB 데이터 삭제
app.delete('/users/:id', (req, res) => {
let sql = 'delete from USER WHERE ID = ?';
connection.query(sql, [req.params.id], (error, result) => {
if (error) throw error;
console.log(`${req.params.id} user deleted...`);
res.send(`${req.params.id} user deleted...`);
});
});
//로그인
app.post('/users/login', (req, res) => {
let sql = 'SELECT * FROM USER WHERE ID = ? AND PASSWORD = ?';
connection.query(sql, [req.body.id, req.body.password], (error, rows) => {
if (error) throw error;
console.log('User info is: ', rows);
res.send(rows);
});
});
// 서버 실행
app.listen(port, () => {
console.log(`App running on port ${port}...`);
});
DB구성이 안되어 있다면 아래글 참고
https://smujihoon.tistory.com/296
database을 새로 만들어서 더미 데이터를 넣고 호출해보면 잘 통신되는걸 확인
기본적인 CRUD 예제를 다 넣어놨으니 참고해서 만들면 될것 같다.
반응형
'그 외 > 기타' 카테고리의 다른 글
Nuxt3 WebSocket example (with Nitro) (0) | 2024.07.27 |
---|---|
Nuxt3 Mysql 연동하기 및 서버구성 (0) | 2024.07.12 |
포트 사용여부 확인 및 죽이기 (0) | 2020.04.13 |
Spring Rest Docs 와 Swagger 그리고 적용 (0) | 2020.01.27 |
RESTful의 대한 기초적인 개념 (0) | 2020.01.21 |
댓글