만족
[Express] Response (res) 본문
[Express] Response (res)
Backend/Express Satisfaction 2020. 6. 28. 19:52참고: https://expressjs.com/en/4x/api.html#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 필드 변경
'Backend > Express' 카테고리의 다른 글
[Express] forever로 배포한 서비스가 오류로 종료된 후 다시 시작되지 않는 현상 (0) | 2020.12.18 |
---|---|
[Express] Apache와 연동해 배포하기 (0) | 2020.11.05 |
[Express] Request (req) (0) | 2020.06.28 |
[Express] Handler (0) | 2020.06.28 |
[Express] Nodemon을 이용한 변경된 코드의 즉각적인 반영 (0) | 2020.06.28 |