만족

[Express] Response (res) 본문

[Express] Response (res)

Backend/Express Satisfaction 2020. 6. 28. 19:52

참고: https://expressjs.com/en/4x/api.html#res

 

Express 4.x - API Reference

Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex

expressjs.com

자주 쓸 것 같은 프로퍼티에 대해 정리한다

 

핸들러의 두 번째 매개변수인 res에 관한 정리

 

Res.headersSent

response header 보내졌는지 여부

 

Res.locals

res.render() 할때 view 전달되는 데이터 (view에서 res.locals property 사용할 있다)

 

Res.append('header field name', 'value');

response header 필드에 값을 추가

 

Res.attachment('file path')

response 파일을 전송

 

Res.cookie('name', 'value', [, options]);

쿠키 조작

res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true })

 

Res.clearCookie (name, [, options]);

해당 name 쿠키 삭제

 

Res.download('path', [,filename] [, option] [, fn]); 

res.download('/report-12345.pdf')

res.download('/report-12345.pdf', 'report.pdf')

res.download('/report-12345.pdf', 'report.pdf', function (err) {
  if (err) {
    // Handle error, but keep in mind the response may be partially-sent
    // so check res.headersSent
  } else {
    // decrement a download credit, etc.
  }
})

지정된 path 파일을 지정한 filename으로 다운로드하도록 설정. Fn 경우 오류가 발생하거나, 전송 완료 호출됨

 

Res.end([data] [, encoding])

response process 종료시킴. 주로 전송할 데이터가 없을 res.status(404).end()처럼 사용하고, 데이터가 있을 때는 res.send() res.json 사용 권장

 

Res.format(obejct)

resquest header에 accept 따라 다른 포맷으로 응답할 있음

 

Res.get('field')

response header 특정 필드 값을 가져옴

 

Res.json([body])

response body 주어진 body 지정한다. 전달된 body JSON.stringify() 변환된다.

 

Res.jsonp([body])

res.json() 같이 동작하며, 차이점은JSONP 지원한다

 

Res.location(path)

response Location header path 파라미터를 지정한다. Res.location('/')

 

Res.redirect([status,], path)

지정한 path로 리다이렉트시킨다. Status기본값은 302(Found; temporary changed path)이다. (301 경우(Moved Permanently)

 

Res.send([body])

response 전송

 

Res.sendFile(path[, options] [, fn])

주어진 path 있는 파일 전송

 

app.get('/file/:name', function (req, res, next) {
  var options = {
    root: path.join(__dirname, 'public'),
    dotfiles: 'deny',
    headers: {
      'x-timestamp': Date.now(),
      'x-sent': true
    }
  }

var fileName = req.params.name
  res.sendFile(fileName, options, function (err) {
    if (err) {
      next(err)
    } else {
      console.log('Sent:', fileName)
    }
  })
})

res.set(field [, value])

response header 변경. Append 이미 헤더가 있을 경우 뒤에 이어서 붙이지만, set 덮어씌운다

 

Res.type(type)

response header Content-Type 필드 변경



Comments