리액트 공부하다보니 조금 막히는 감이 있어서

Node.js를 복습하면서 감을 잡으려고 한다...!


💡 시작

Node.js의 API는 비동기 방식으로, Non-blocking I/O가 가능하다.

따라서 보다 가벼운 환경에서도 높은 Request 처리 성능을 가지고 있다.

Node.js는 데이터를 실시간 처리하여 SPA에 유용하다.

반면에 CPU 사용률이 높은 앱에는 적합하지 않다!


🥯 httpServer

간단하게 createServer를 이용해 3000번 포트를 연결해보자!

createServer가 반환한 HTTP 서버 객체의 listen에 3000을 전달, 실행한다.

// 01_httpServer.js
const http = require('http')

http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Node Test Code Start');
}).listen(3000);

console.log('Server is running at http://localhost:3000/ !!!');

image.png

🛎 express

express는 Node.js 환경에서 동작하는 웹 애플리케이션 프레임워크이다.

간단한 예시를 통해 사용해본다!

1. nodemonexpress를 설치한다.

sudo npm i -g nodemon
npm init -y
npm i express

nodemon은 파일을 저장할 때마다 변경 사항을 적용하여 실행시킨다.

귀찮게 서버를 종료하고 다시 시작할 필요가 없다!

nodemon <filename> 으로 실행한다.

그리고 npm i <package> --save에서 --save는 생략가능하다.

2. server.js를 작성한다.

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const router = express.Router();

router.get('/', (err, res) => {
  res.send("HELLO MY EXPRESS!!")
});

app.use(router);

app.listen(port, (err) => {
  if (err) console.log(err)
  else console.log('Server is running...!!!');
});

3. localhost:3000으로 확인한다.

image.png

🍡 Router

router를 사용하여, 간단한 CRUD를 구성해본다!

1. controller폴더를 생성하고 user.js를 작성한다.

// user.js
exports.createUser = (req, res) => {
  res.send('USER CREATED...')
}

exports.readeUser = (req, res) => {
  res.send('USER READ...')
}

exports.updateUser = (req, res) => {
  res.send('USER UPDATED...')
}

exports.deleteUser = (req, res) => {
  res.send('USER DELETD...')
}

2. server.js를 수정한다.

이전 코드에서 router를 분리하였다.

// server.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const router = require('./route/router');

app.use(router)

app.listen(port, (err) => {
  if (err) console.log(err)
  else console.log('Server is running...!!!');
})

3. route폴더를 생성, router.js를 작성한다.

user.js에서 만든 CRUD기능을 route의 각 메소드에서 실행한다.

const express = require('express');
const route = express.Router();
const user = require('../controller/user');

route.route('/user')
    .post(user.createUser)
    .get(user.readeUser)
    .put(user.updateUser)
    .delete(user.deleteUser)

module.exports = route;

4. node로 실행하고, postman에서 확인한다.

image.png

image.png