평행코드

Express란 무엇일까? 그리고 서버란? 본문

Node js

Express란 무엇일까? 그리고 서버란?

나의 오류는 누군가 겪었던 오류 2023. 5. 25. 12:55

Express

Express 란?

"Node.js를 위한 빠르고 독선적이지 않은 미니멀리스트 웹 프레임워크"

라고 공식홈페이지에 나와있다.

Express 설치

(1) node js파일명 => 이 방법으로도 js파일을 실행시킬 수 있다.
(2) 이번 프로젝트에서는 package.json으로 실행 해 줄것이다.
(3) package.json 안에 main => 내가 만들고 배포한 package를 다른 사람들이 설치하면 main을 사용한다.
(4) package.json 안에 scripts를 만들어 준다.
(5) scripts 는 실행하고 싶을 것을 말한다 즉, scripts안에 실행할 것을 적어준다.
ex) scripts={
"start": "node index.js" // 이름은 자유롭게 지어줄 수 있다.
}
(6) 그 후 npm run start 로 실행시킬 수 있다 // package.json이 존재하는 폴더 한정
(7) npm install express 로 Express 패키지를 다운로드 받는다.

npm install express

(8) node_modules, package-lock.json 파일이 생성된다.
(9) node_modules 에는 npm으로 설치한 모든 패키지가 저장된다.
(10) express 는 혼자 작동되지 않기에 다른 패키지가 필요하다.
(11) node_modules 안에 express 안에 존재하는 package.json안에 dependencies는 express가 작동되기위해 필요한 패키지들을 나타낸다.
(12) express를 설치하는데 의존하고 있는 패키지가 있기 때문에 npm i express를 하면 그것들도 함께 설치된다.
(13) npm i express 를 했을 때 npm 이 알아서 dependencies에 express를 추가해준다.

Express 사용
const express = require('express')
const app = express()
const port = 4000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

express function을 사용하면 express application을 생성해준다.

이제 app이 listen해야한다.

 

여기서 ! app이 listen 해야한다 했을 때 무엇을 listening해야 한다는 것일까?

이것을 알기전 알고가야할 개념이 있다.

바로 서버라는 것!

서버란?

서버는 항상 켜져있는 컴퓨터 같은 것

서버는 항상 켜져 있고, 인터넷에 연결되어있는 컴퓨터라 할 수 있다.

 

예를들어 nomadcoder.co/login에 간다고 하면 이것이 /login으로의 request이다.

내 서버는 그것을 listening하고 있는것이다.

 

listen

listen에는 callback이 있다

callback은 서버가 시작될 때 작동하는 함수이다.

callback을 하기전에 서버에게 어떤 port를 listening할지 얘기해 주어야 한다.

컴퓨터에는 수많은 port가 있는데 port는 컴퓨터의 문이나 창문과 같은 것이다!

 

그래서 위에 코드를 참고해보면,

서버가 만들어졌고, 그 서버가 port 4000을 listning하고 있다.

 

서버는 대기하고 있다

listening하기 시작하면 계속 listen하고 있다.

내가 종료할때까지...

이것이 서버가 하는 일이다.

잠들지도 않고, request가 들어오는지 listening 하고 있는 것이다.


정리

1. express를 import해줌

2. port번호 지정 (관습적으로 4000번으로 지정한다고 한다)

3. app 변수에 express function을 지정

4. app이 listen하도록해준다

'Node js' 카테고리의 다른 글

Router란?  (0) 2023.05.26
Morgan middleware  (0) 2023.05.26
Middleware란? app.use(), global middleware  (2) 2023.05.25
GET이란? (req, res)  (0) 2023.05.25
Express setup  (0) 2023.05.25