본문 바로가기

Back-End/Node.js

Express - 3.2. Hello Word 2

반응형

전체 코드

const express = require('express')
const app = express()
const port = 3000

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

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

 

설명

const express = require('express')

express 모듈을 가져와 express에 넣는다. express는 후에 바뀔 값이 아니므로 const, 즉 상수로 선언한다.

const app = express()

express<함수>의 return된 값을 상수 app에 담는다.

 

app

app은 application 객체가 담기도록 약속되어 있다. Express 공식 홈페이지에서 API 참조에 들어가면 application 객체가 가지고 있는 함수들을 모두 볼 수 있다.

 

app.get()

객체의 많은 함수(=메소드. method)들 중에서 .get()을 살펴보자.

app.get(path, callback)

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

첫 번째 인자로 path인 /을, 두 번째 인자로는 path로 접속사가 들어왔을 때 호출될 함수를 작성한다. 위 함수의 형태는 축약형으로, 아래 코드와 동일하다.

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

get()함수는 route, routing이라고도 한다. 즉, 사용자마다 여러 path를 통해 들어올 때, path마다 적당한 응답을 주는 것이다.

만약 코드를 아래와 같이 작성해보자.

app.get('/', function(req, res){
  return res.send('/')
});

app.get('/page', function(req, res){
  return res.send('/page')
});

localhost:3000
localhost:3000/page

즉, app.get메소드의 첫 번째 인자로 path를 전달하여 routing을 한다. 이와 동일한 코드가 이전 코드는 아래와 같다.

if(pathname === '/'){
    ...
}else if(pathname === '/page'){
    ...

if문이 많아 복잡한 이전 코드에 비해 현재 Express를 이용한 코드가 훨씬 짧고 깔끔하지 않은가? 

 

app.listen()

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

listen메소드가 실행될 때 웹 서버가 실행된다.

첫 번째 인자로 포트 번호인 3000을 주게 되면, 3000번 포트를 listening하고, 이에 성공하게 되면 콜백함수가 실행되도록 약속되어 있다.

이 코드는 이전 코드로 아래와 동일하다.

app.listen(3000);

 

반응형

'Back-End > Node.js' 카테고리의 다른 글

Express - 5.1. 상세페이지구현 1 - Route Parameter  (0) 2020.09.04
Express - 4. 홈페이지 구현  (0) 2020.09.04
Express - 3.1. Hello Word 1  (0) 2020.09.04
Express - 2.실습준비  (0) 2020.09.03
Express - 1.Express란?  (0) 2020.09.03