개발 일기

Express 란? 본문

서버/Node.js

Express 란?

이건욱

설명 

- Node.js를 위한 빠르고 개방적인 간결한 웹 프레임 워크입니다.

 

특징

- 웹 및 모바일 어플리케이션을 위한 일련의 강력한 기능을 제공

- 자유롭게 활용이 가능한 수 많은 HTTP 메소드 및 미들웨어를 통해 쉽고 빠르고 강력한 API를 작성할 수 있습니다.

 

설치

npm install express --save

 

라우팅 ?

- URl 경로 및 특정한 HTTP 요청 메소드 (GET , POST 등) 특정 엔드 포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말합니다.

 

구조

 

  • app은 express의 인스턴스입니다.
  • METHOD는 HTTP 요청 메소드입니다.
  • PATH는 서버에서의 경로입니다.
  • HANDLER는 라우트가 일치할 때 실행되는 함수입니다.

 

app.METHOD(PATH, HANDLER)

아래는 주로 사용되는 것만 정렬을 합니다.

 

GET - 라우트 경로 루트에 위치

app.get('/', function (req, res , next) {
  res.send('Hello World!');
});
app.param('user', function (req, res, next, id) {
  // try to get the user details from the User model and attach it to the request object
  User.find(id, function (err, user) {
    if (err) {
      next(err)
    } else if (user) {
      req.user = user
      next()
    } else {
      next(new Error('failed to load user'))
    }
  })
})

PUT - 라우트 경로 user에 위치

app.put('/user', function (req, res , next) {
  res.send('Got a PUT request at /user');
});

POST - 라우트 경로 루트에 위치

app.post('/', function (req, res , next) { res.send('Got a POST request'); });

DELETE - 라우트 경로 user에 위치

app.delete('/user', function (req, res , next) {
  res.send('Got a DELETE request at /user');
});

ALL

app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...');
  next(); // pass control to the next handler
});
app.locals 애플리케이션 내의 로컬 변수에 특성을 가집니다.
app.mountpath 하위 앱에 마운트 하나 이상에 경로 패턴이 포함되어있습니다.
app.on('mount', 콜백(부모)) mount이 부모 응용 프로그램에 장착 될 때 이벤트는, 하위 응용 프로그램에 발생합니다. 부모 앱은 콜백 함수에 전달됩니다.

응답 메소드

다음 표에 표시된 응답 오브젝트에 대한 메소드(res)는 응답을 클라이언트로 전송하고 요청-응답 주기를 종료할 수 있습니다. 라우트 핸들러로부터 다음 메소드 중 어느 하나도 호출되지 않는 경우, 클라이언트 요청은 정지된 채로 방치됩니다.

res.download() 파일이 다운로드되도록 프롬프트합니다.
res.end() 응답 프로세스를 종료합니다.
res.json() JSON 응답을 전송합니다.
res.jsonp() JSONP 지원을 통해 JSON 응답을 전송합니다.
res.redirect() 요청의 경로를 재지정합니다.
res.render() 보기 템플리트를 렌더링합니다.
res.send() 다양한 유형의 응답을 전송합니다.
res.sendFile 파일을 옥텟 스트림의 형태로 전송합니다.
res.sendStatus() 응답 상태 코드를 설정한 후 해당 코드를 문자열로 표현한 내용을 응답 본문으로서 전송합니다.

 

app.route()

- app.route()를 이용하면 라우트 경로에 대하여 체인 가능한 라우트 핸들러를 작성할 수 있습니다

 

예시 :)

app.route('/book')
  .get(function(req, res) {
    res.send('Get a random book');
  })
  .post(function(req, res) {
    res.send('Add a book');
  })
  .put(function(req, res) {
    res.send('Update the book');
  });

express.Router

- express.Router 클래스를 사용하면 모듈식 마운팅 가능한 핸들러를 작성할 수 있습니다

 

예시:)

app.use('/auth', AuthRouter);
import { Router } from 'express';
// caseSensitive 대소문자 구분
// mergeParams req.params상위 라우터 의 값을 유지하십시오 . 부모와 자식의 이름이 충돌하는 경우 자식의 값이 우선합니다.
// strict 엄격한 라우팅을 사용하십시오.
const router: Router = Router([options]);

router.post('/login', AuthComponent.login);

 

'서버 > Node.js' 카테고리의 다른 글

Sharp ( 이미지 resize )  (0) 2020.03.26
express-validator ?  (0) 2020.03.19
Gulp ?  (0) 2020.03.18
Npm ?  (0) 2020.03.15
Node js란?  (0) 2020.03.06
Comments