일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코딩테스트
- js코테
- 리액트댓글기능
- 코테
- 백준
- 리액트
- 리액트커뮤니티
- 안드로이드 스튜디오
- 백준알고리즘
- CSS
- 백준nodejs
- 익스프레스
- 포이마웹
- HTML
- 백준골드
- JS
- 알고리즘
- JS프로그래머스
- HTML5
- dp알고리즘
- 프로그래머스
- 백준js
- css기초
- 자바스크립트
- 프로그래머스JS
- 몽고DB
- 다이나믹프로그래밍
- 백준구현
- 프로그래머스코테
- 백준구현문제
- Today
- Total
개발새발 로그
1. MERN기반 커뮤니티 - Express 설치와 사용방법(+nodemon) 본문
Express 설치
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
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으로 실행한다는 것을 알려주면 빠르게 사용가능하다.
'MERN' 카테고리의 다른 글
CRUD - Create : 게시글 생성하기 (0) | 2023.06.24 |
---|---|
4. MERN기반 커뮤니티 - React-BootStrap사용법 (0) | 2023.06.14 |
3. MERN기반 커뮤니티 - Mongoose Model (0) | 2023.06.13 |
3. MERN기반 커뮤니티 - axios와 CORS정책 (0) | 2023.06.13 |
2. MERN기반 커뮤니티 - MongoDB시작하기 (0) | 2023.06.13 |