What is Express

references

이번 글은 아래 페이지들을 참고하여 작성하였습니다.
MDN_link
Express 공식 사이트
stackoverflow 내 답변


MERN Clone Coding_blog-app
MERN에서 'E'를 맡고 있는 'express'가 무엇인지 궁금하여 찾아보았다.


1. express란?

express는 현시점에서 가장 인기 있는 node.js의 프레임워크이다. 기존의 복잡했던 node.js 작업을 간소화해서 진행할 수 있다. 매우 가볍게 동작하도록 고안되었기 때문에 외부 library나 features를 잘 접목하여 사용해야 제 성능을 발휘할 수 있다.


2. express의 특장점?

다른 framework와 달리 express의 주된 특징이라면 바로 unopinionated framework라는 점이다.
여기서 opinionatedunopinionated의 개념을 짚고 가자.

opinionated
Opinionated frameworks는 특정 작업에 대해 곧바로 접근하는 방식(right way)의 framework이다. 곧바로 접근하는 방식은 알기 쉽고 잘 정돈되기 때문에 특정 domain에서 빠른 개발을 지원한다. main domain 외부에서 작업할 때 다소 유연하지 못하기 때문에 components나 approaches를 고를 때 선택지가 적은 게 단점이다.

unopnionated
Unopinionated frameworks는 작업하는 데 제약이 적어 각종 components를 조합하여 사용할 수 있다. 이러한 특징은 개발자로 하여금 특정 작업을 완수하는 데 가장 적합한 tool을 사용하기 유용하게 한다. 하지만 어떤 tool이 가장 적합할지 스스로 알아내야 하는 점이 단점이다.

expressunopinionated framework로서 가끔은 너무 선택지가 많아 곤란하다고 여길 만큼 개발자가 원하는 middleware를 자유롭게 넣을 수 있다!


3. Installing

expressnpm을 이용해서 간단히 설치 가능하다. 아래의 입력값들을 terminal창에 차례대로 입력하여 설치하자.

3-1. create a directory

$ mkdir myapp
$ cd myapp

3-2. create a package.json

$ npm init

3-3. settings

package.json 파일을 만들고 나면 다음과 같은 setting값들이 terminal창에 표시될 텐데 자신이 원하는 대로 설정을 하면 된다.

3-4. install express

dependencies list에 추가할지 여부에 따라 아래와 같이 입력하면 된다.

$ npm install express --save
$ npm install express --no-save

4. Hello World!

다음 예제 코드를 통해 기본적인 local server를 구축하는 법을 알아보자.

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 on port ${port}`)
})
$ node app.js

위와 같이 코드를 작성하고 파일을 실행시킨 후 http://localhost:3000/에 접속해보면 실시간으로 변경사항이 반영되는 서버가 완성된다!
이를 응용하여 다양한 페이지를 구성하고 자신만의 서비스를 발전시켜 나가면 된다!


5. Basic Routing

Routing은 application이 특정 endpoint에 대한 client의 request가 어떻게 respond할지 결정하는 데 관련 있다. endpoint로는 URI (or path), 특정한 HTTP request method (GET, POST, and so on) 등이 있다.

routeroute가 일치하면 실행되는 하나 혹은 그 이상의 handler functions를 가진다.

route의 구조는 다음과 같다.

app.METHOD(PATH, HANDLER)

//app is an instance of express.
//METHOD is an HTTP request method, in lowercase.
//PATH is a path on the server.
//HANDLER is the function executed when the route is matched.

HTTP request method의 종류는 링크 걸어두었다.

다음 예제들을 통해 기본적인 route를 정의하는 법을 알아보자.

  • Respond with Hello World! on the homepage:
app.get('/', function (req, res) {
  res.send('Hello World!')
})
  • Respond to POST request on the root route (/), the application’s home page:
app.post('/', function (req, res) {
  res.send('Got a POST request')
})
  • Respond to a PUT request to the /user route:
app.put('/user', function (req, res) {
  res.send('Got a PUT request at /user')
})
  • Respond to a DELETE request to the /user route:
app.delete('/user', function (req, res) {
  res.send('Got a DELETE request at /user')
})

좋은 웹페이지 즐겨찾기