티스토리 뷰

프로젝트/MERN Application

Express

첸첸 2022. 1. 30. 17:12
728x90

Express는 Node.js 웹 애플리케이션 프레임워크이다. API를 빠르고 쉽게 작성하는데 도움을 준다.

프로젝트에 사용 된 기본 내용 및 추가 사항들만 정리해보려고 한다. 더 자세한 내용을 위해서는 하단에 있는 공식홈페이지를 참고하길바란다.

설치
$ npm install express --save

--save 옵션을 주고 설치하면 package.json 파일 내의 dependencies 목록에 추가. 이후 app 디렉토리에서 npm install을 실행하면 모듈 자동 설치

 

라우팅 : 애플리케이션 엔드포인트의 정의,  URI 가 클라이언트 요청에 응답하는 방식

* 기본 사용법

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

app.get('/', function(req,res){
	console.log("클라이언트에서 URI : / 로 요청시 함수 실행") 
})

* 라우트 경로 

- 라우트 경로는 문자열, 문자열 패턴, 정규식으로 정의 가능

//문자열 패턴
app.get('/ab?cd', function(req, res) {
	console.log("URI가 /abcd 이거나, /acd인 겨우 매칭");
})

//정규식 패턴
app.get('/a/', function(req, res) {
	console.log("a가 포함된 모든 URL과 일치");
})​

* 응답 메소드

메소드 설명
res.end() 응답 프로세스 종료
res.json() JSON 응답 전송
res.redirect() 요청의 경로를 재지정
res.send() 다양한 유형의 응답 전송

 

app.route() : 라우트 핸들러를 체인형식으로 작성
app.route('/user')
	.get(function(req,res) {
    	res.send("사용자 정보 가져오기");
        });
	.post(function(req,res) {
    	res.send("사용자 정보 추가");
    	});
express.Router  : 모듈식 핸들러 작성하기
//파일명 post.js
import express from 'express';

import { commentPost, getPostsBySearch, getPost, getPosts, createPost, updatePost, deletePost, likePost} from '../controllers/posts.js'
import auth from '../middleware/auth.js';

const router = express.Router();
router.get('/search', getPostsBySearch);
router.get('/', getPosts);
router.get('/:id', getPost)
router.post('/', auth, createPost);
router.patch('/:id', auth, updatePost); //use patch when you want to update
router.delete('/:id', auth, deletePost);
router.patch('/:id/likePost' , auth, likePost);
router.post('/:id/commentPost',auth,commentPost);

export default router;

작성 후 라우터 모듈을 로드 해야한다.

//파일명 index.js
import express from 'express';
import postRoutes from './routes/posts.js'

const app = express();
//'/posts'로 시작되는 요청이 오면 postRoutes로 요청을 보낸다.
app.use('/posts', postRoutes);

 

공식 홈페이지 참고

https://expressjs.com/ko/guide/routing.html

 

'프로젝트 > MERN Application' 카테고리의 다른 글

Express의 resource(body-parser/cors)  (0) 2022.01.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함