본문 바로가기
node.js

Express 탐구 - 1

by spare8433 2023. 7. 11.

설명

Express.jsNode.js 를 기반으로하는 간단하게 웹 서버를 만들 수 있 웹 애플리케이션 프레임워크이다.


사용하기 어렵지 않기 때문에 어떤 속성 및 기능들이 있는지 한 번씩만 둘러봐도 큰 도움이 될 것 같다.


분류

  • express()
  • Application
  • Router
  • Request
  • Response

express()

express 최상위 모듈로써 Express 응용 프로그램 생성


var express = require('express')
var app = express()

메서드

express.json([options])

Express 에 내장된 미들웨어 기능이며 JSON payloads 로 들어온 데이터를 parsing 처리 (body-parser 기반)


express.raw([options])

Express 에 내장된 미들웨어 기능이며 payloads 로 들어온 데이터를 버퍼(Buffer)로 parsing 처리 (body-parser 기반)


express.Router([options])

라우팅을 모듈화라우터 핸들러를 그룹화 등등 라우트들을 관리하는 기능


express.static(root, [options])

Express 애플리케이션에서 정적 파일을 제공 및 활용하기 위한 내장 미들웨어 함수(이미지, CSS, JavaScript 파일 등)

  • root : 정적 파일의 기본 디렉토리 경로


express.text([options])

Express 에 내장된 미들웨어 기능이며 payloads 로 들어온 데이터를 문자열(string)로 parsing 처리 (body-parser 기반)


express.urlencoded([options])

Express 에 내장된 미들웨어 기능이며 URL-encoded 형식 payloads 로 들어온 데이터를 parsing 처리(body-parser 기반)



Application

express() 로 생성되는 Express 응용 프로그램의 객체를 의미 주로 app 으로 명명하여 사용

속성

app.locals [ type: 로컬객체형식 ]

지역 변수(local variables) 를 저장 및 관리 할 수 있는 속성


app.mountpath [ type: string, string[] ]

라우트 와 path 의 관계 : 라우트가 path 에 대응되어 특정 path 로 접근 시 대응되는 라우트의 내용이 실행되는 방식이라고 이해하면 편하다


예) 상위 라우트(/main)에 병합된 하위 라우트(/sub)가 있어 /main/sub 와 같이 접근 할 수 있는 상황일 때 하위 라우트의 mountpath 는 "/main" 이다


이벤트

app.on('mount', callback(parent))

하위 라우트가 상위 라우트에 마운트 되었을 때 발생하는 이벤트


메소드


app.all(path, callback [, callback ...])

모든 HTTP 메서드와 대응되는 점 제외하고는 app.METHOD() 와 동일


app.METHOD(path, [callback, ...] callback)

HTTP 메서드와 대응 하는 모든 메소드가 존재 사용 방식은 동일


Express는 동일한 이름의 HTTP 메서드에 해당하는 라우팅 메서드를 지원, 사용 방식은 동일


app.listen([port[, host[, backlog]]][, callback])

host, port 내용 등으로 서버에 연결하고 실행함
Node의 http.Server.listen() 과 동일


app.param([name], callback)

라우트에서 받아지는 특정 매개변수를 추가적으로 처리하는 callback 내용을 정의하는 메서드


app.path()

path 내용 리턴


app.render(view, [locals], callback)


view : 렌더링할 템플릿 파일의 이름 또는 경로

locals : 템플릿에 전달할 데이터를 담은 객체입니다.

callback : 렌더링이 완료된 후 호출될 콜백 함수

사전에 생성된 템플릿형식에 맞는 파일을 html 형식으로 반환해주는 메서드


app.set('view engine', 'ejs'); // 템플릿 엔진 사전 설정

app.route(path)

HTTP 요청을 처리하는 데 사용할 수 있는 단일 경로의 인스턴스를 반환하며 중복 경로 이름(및 오타 오류)을 방지하기 위해 사용


같은 path 에서 여러가지 http 요청이 있을 때 pathroute 를 기준으로 각각의 요청에 대응되는 기능을 구현할 때 편함


app.set(name, value)

서버 Application 의 다양한 옵션을 설정하는 메서드


※ 옵션이 많아 필요한 경우 찾아보는 것이 적절해보임


app.use([path,] callback [, callback...])

지정된 미들웨어기능을 지정된 경로에 마운트합니다. 미들웨어 기능은 요청된 경로의 기준이 일치할 때 실행됩니다.

  • path [ 기본값 : '/' ] : 경로



Router

개체 router는 미들웨어 및 경로의 격리된 인스턴스입니다. 미들웨어 및 라우팅 기능만 수행할 수 있는 "미니 Application" 이라 보면 이해가 쉽다


메서드

router.all(path, [callback, ...] callback)

모든 HTTP 메서드와 대응되는 점 제외하고는 router.METHOD() 와 동일


router.METHOD(path, [callback, ...] callback)

HTTP 메서드와 대응 하는 모든 메소드가 존재 사용 방식은 동일

ex) get, post


router.param(name, callback)

라우트에서 받아지는 특정 매개변수를 추가적으로 처리하는 callback 내용을 정의하는 메서드

app.param 과 달리 배열을 받지 않음


router.route(path)

HTTP 요청을 처리하는 데 사용할 수 있는 단일 경로의 인스턴스를 반환하며 중복 경로 이름(및 오타 오류)을 방지하기 위해 사용


router.use([path], [function, ...] function)ㅠ

지정된 미들웨어기능을 지정된 경로에 마운트합니다. 미들웨어 기능은 요청된 경로의 기준이 일치할 때 실행됩니다.