[node.js] express.js로 server 구축하기

express.js

이번 포스트는 node.js의 back-end framework인 express.js를 이용하여 http server를 구축해보도록 하겠습니다.

node.js는 python과 마찬가지로 back-end를 다룰 수 있습니다. python도 그렇듯, node.js 자체는 server가 아니지만, node.js의 framework를 통하여 http server를 만들 수 있습니다.

  1. express.js 설치
  2. server 띄우기
  3. routing


1. express.js 설치

express.js는 python의 flask와 비슷합니다. 필자는 사실 거의 똑같다고 생각합니다. 어쨋든 express.js를 한 번 설치해보도록 합시다.

# 프로젝트 폴더 생성
> mkdir express-tutorial

# 프로젝트 폴더로 이동
> cd express-tutorial

# npm을 통하여 project initialization
> npm init

# npm을 이용하여 express.js 설치
> npm install express.js

참고로, node.js를 설치할 때 npm은 자동으로 설치됩니다.
npm init을 할 때 이것 저것 입력하라고 나오는데 그냥 다 enter 해도 무방합니다.

express install

이렇게 express.js 설치를 완료했습니다. 설치 내역을 자세히 읽어 보면 이런 게 있습니다.

added 49 packages from 36 contributors and audited 122 packages in 6.981s

즉, express.js를 설치하면서 약 122개의 종속 pacakges를 설치했으며, 이것들을 설치하는 데 6.981초, 약 7초가 걸렸다는 이야기입니다. 참 많이도 설치하네요 ^^..


2. Server 띄우기

이제 index.js에다가 server를 띄우는 코드를 작성해보도록 하겠습니다. 다음 코드를 작성 후 index.js로 저장합니다.

// require
const express = require('express')
const app = express()

app.get('/', (req, res) => {
  res.send('express.js로 만든 server입니다.')
})

app.listen(3000, () => {
  console.log(`3000번 port에 http server를 띄웠습니다.`)
})

그리고 터미널에서 다음과 같이 실행해주세요

> node index.js
3000번 port에 http server를 띄웠습니다.
express terminal

그 다음 브라우저에서 http://localhost:3000혹은 http://127.0.0.1:3000으로 접근하여 확인할 수 있습니다.

express page

이렇게 server를 띄우는 데 성공했습니다.


3. Routing

route

1. (한 곳에서 다른 곳으로 가기 위해 따라가는) 길   2. (버스기차수송품 등의) 노선

routing

1. 여정; 절차의 결정   2. 전달; 발송; 발송 절차   3. 우편물의 선별; 우편물 배달 계획

이렇게 해석됩니다. 그럼 web server에서 routing이란 무엇일까요? 바로 사용자가 접근하는 웹 페이지를 의미합니다. routing을 설정해줘야 페이지에 접근이 가능합니다. 코드를 조금 더 채워보도록 하겠습니다.

// require
const express = require('express')
const app = express()

app.get('/', (req, res) => { res.send('index page') })
app.get('/test', (req, res) => { res.send('test page') })
app.get('/member', (req, res) => { res.send('member page') })
app.get('/board', (req, res) => { res.send('board page') })

app.listen(3000, () => {
  console.log(`3000번 port에 http server를 띄웠습니다.`)
})

이렇게 총 4개의 페이지(/, /test, /member, /board)를 만들었습니다. 터미널에서 똑같이 명령어를 수행하고 웹 사이트를 확인 해 봅시다.

> node index.js
3000번 port에 http server를 띄웠습니다.
express page 2
express page 3
express page 4
express page 5

이렇게 매우 간단하게 http server를 구축하였습니다.
다음 포스트에서는 express.js 기반의 resetful api를 구축해보도록 하겠습니다.


참고사이트

  1. node.js와 javascript
  2. node.js 소개