그 외/기타

Node와 express로 간단하게 서버 구축하기

이안_ian 2024. 7. 11. 21:54
반응형

1. LTS로 Node 먼저 설치하기

https://nodejs.org/en

 

Node.js — Run JavaScript Everywhere

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

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 예제를 다 넣어놨으니 참고해서 만들면 될것 같다.

반응형