Express.js 란?
Node.js 웹 프레임워크 중의 하나로, 여러가지 기능을 가지고 있다.
( HTTP 요청에 따른 라우팅 기능이 대표적 )
HTTP 란?
라우팅이란?
Express.js 의 특징
javascript로 만들어진 여러가지 기능의 미들웨어를 마음대로 추가할 수 있다.
미들웨어란?
사용자의 요청과, 서버의 응답 사이에서 특정한 기능을 수행해주는 앱
사용자 요청 송신 > 미들웨어 > 서버 응답 > 미들웨어 > 사용자 응답 수신
express.js 설치
npm i express
express 사용해서 서버만들기
// index.js ( babel, 최신 es코드 사용 )
// express 모듈 불러오기
import express from "express";
// express 서버 만들기
const app = express();
//
app.METHOD(PATH, HANDLER)
express 에서 라우팅하기
express는 브라우저의 HTTP 요청을 받아
express객체의 get(), post() 등의 메서드를 이용해서 라우팅한다.
// '/home' 주소로 접근시, "Home" 출력하도록 라우팅하기 ( get, post, all )
app.get('/home', (req, res) => {
res.send("Home");
});
app.post('/home', (req, res) => {
res.send("Home");
});
// 'Router' 사용해서 다른 파일에서도 라우팅하기
// home.js
import { Router } from "express";
router.get('/', (req, res) => {
res.send("Home");
});
router.get('/about', (req, res) => {
res.send("About Home");
});
export default router;
// index.js
import home from "./home";
app.use('/home', home);
express 에서 미들웨어 사용하기
// express 서버에 미들웨어 추가하기
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});
// 라우터에 미들웨어 추가하기
router.use((req, res, next) => {
console.log("Time", Date.now());
next();
});
// 경로이동시 미들웨어 사용하기
app.all('/secret', (req, res, next) => {
console.log("anything")
next();
});
응답 메소드 (res)
메소드 | 설명 |
res.download() | 파일이 다운로드되도록 프롬프트한다? |
res.end() | 응답 프로세스를 종료 |
res.json() | JSON 응답을 전송 |
res.jsonp() | JSONP 지원을 통해 JSON 응답을 전송 |
res.redirect() | 요청의 경로를 재지정 ( 페이지 이동 ) |
res.render() | 보기 템플릿 렌더링 |
res.send() | 다양한 유형의 응답 전송 |
res.sendFIle() | 파일을 옥텟 스트림 형태로 전송 |
res.sendStatus() | 응답 상태 코드를 설정 후, 해당 코드를 문자열로 표현해 응답 전송 |
express 서버에서 정적파일(CSS, HTML, JS) 불러오기
// 옵션 지정하기
const options = {
dotfile: 'ignore',
etag:false,
extensions: ['css', 'html', 'js'],
index: false,
maxAge: '1d',
redirect: false,
setHeaders: (res, path, stat) => {
res.set('x-timestamp', Date.now());
}
}
// 옵션 적용해서, './public' 폴더 인식하기
app.use(express.static('public'), options);
express 서버에 변수저장하기
app.set(키, 값)
반응형