개발새발 로그

1. MERN기반 커뮤니티 - Express 설치와 사용방법(+nodemon) 본문

MERN

1. MERN기반 커뮤니티 - Express 설치와 사용방법(+nodemon)

이즈흐 2023. 6. 13. 18:36

Express 설치

https://expressjs.com/ko/

 

Express - Node.js 웹 애플리케이션 프레임워크

Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크 $ npm install express --save

expressjs.com

1. 빈 폴더에 npm init으로 pagkage.json파일 설치

 -y를 붙여 추가적인 설정없이 바로 설치가능

$ npm init -y

2.Express 설치

$ npm install express --save

설치완료

3.  Express예제를 보면서 서버환경 구축

https://expressjs.com/ko/starter/hello-world.html

 

Express "Hello World" 예제

Hello world 예제 기본적으로 이 앱은 여러분이 작성할 수 있는 가장 간단한 Express 앱일 것입니다. 이 앱은 하나의 파일로 된 앱이며 Express 생성기를 통해 얻게 되는 앱과는 같지 않습니다. (이 예제

expressjs.com

4.index.js파일 생성후 아래 코드 복사하기

const express = require('express') //express를 불러옴
const app = express() //app에 express객체할당
const port = 3000

app.get('/', (req, res) => { //url요청이왔을 때 응답하는 함수
  res.send('Hello World!')
})

app.listen(port, () => { //app.listen을 통해 서버를 실행시킬 수 있음
  console.log(`Example app listening on port ${port}`)
})

5. 서버 실행을 위한pagkage.json에서 script에 명령어 추가

6. npm start로 서버실행

 

기존에 만든 클라이언트 파일(리액트 어플리케이션과 같은)을 서버에서 띄워주기

1. res.sendFile을 통해 클라이언트의 HTML파일 띄우기

app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname,'../client/build/index.html'));
})

 -> 이 때 클라이언트파일을 build를 해야함 (압축) : webpack개념

  ->정적으로 만들어주는 것임 ->만약 클라이언트의 코드가 변경되면 계속 build로 업데이트 해줘야함

  ->__dirname : 현재 디렉터리 경로를 자동으로 띄워줌

 

2. 현재 디렉터리 경로와  클라이언트의 상대경로를 합쳐주기위한 path 라이브러리 설치 

 ->위 path.join을 사용하기 위해 설치하고 가져와 줘야함

npm install path --save
const path = require('path');

 

이때 서버를 실행해도 클라이언트파일이 실행이 되지않는다

이유는 Express어플리케이션에게 static으로 사용할 폴더를 알려주지 않았기 때문이다.

app.use를 통해서 Express에게 static으로 사용할 폴더를 알려주면된다.

app.use(express.static(path.join(__dirname,'../client/build')));

 

 

Nodemon

서버 코드를 변경하고 적용할 때 서버를 껏다 키는 것이 번거로울 때 사용한다.

npm install nodemon --save

서버 코드를 변경하고 저장하면 자동으로 껏다가 켜주는 라이브러리다.

 

pakage.json파일에서 nodemon으로 실행한다는 것을 알려주면 빠르게 사용가능하다.

728x90
반응형
LIST