설명
Express.js 는 Node.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 요청이 있을 때 path 즉 route 를 기준으로 각각의 요청에 대응되는 기능을 구현할 때 편함
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)ㅠ
지정된 미들웨어기능을 지정된 경로에 마운트합니다. 미들웨어 기능은 요청된 경로의 기준이 일치할 때 실행됩니다.
'node.js' 카테고리의 다른 글
Express 탐구 - 2 <Request, Response> (0) | 2023.07.17 |
---|---|
Node.js 개발 및 배포 환경 구성에 유용한 패키지 (1) | 2023.06.19 |
[ dotenv ] 환경 변수 사용 패키지 (0) | 2022.02.14 |