Express.js-헤더가 이미 전송되었는지 확인하는 방법은 무엇입니까?
헤더를 설정할 수있는 라이브러리를 작성 중입니다. 헤더가 이미 전송 된 경우 Node.js에서 제공하는 "전송 된 후 헤더를 설정할 수 없습니다"메시지로 실패하도록하는 대신 사용자 지정 오류 메시지를주고 싶습니다. 그렇다면 헤더가 이미 전송되었는지 확인하는 방법은 무엇입니까?
편집 : Express 4.x부터 res.headersSent를 사용해야합니다. res.send ()를 호출 한 직후에 true로 설정되지 않기 때문에 확인하기 전에 setTimeout을 사용할 수도 있습니다. 출처
단순 : Connect의 Response 클래스는 "headerSent"공용 속성을 제공합니다.
res.headerSent
헤더가 이미 클라이언트에 전송되었는지 여부를 나타내는 부울 값입니다.
소스 코드에서 :
/**
* Provide a public "header sent" flag
* until node does.
*
* @return {Boolean}
* @api public
*/
res.__defineGetter__('headerSent', function(){
return this._header;
});
https://github.com/senchalabs/connect/blob/master/lib/patch.js#L22
Node는 res.headersSent
요즘을 지원 하므로 사용할 수 / 있어야합니다. 헤더가 이미 전송되었는지 여부를 나타내는 읽기 전용 부울입니다.
if(res.headersSent) { ... }
http://nodejs.org/api/http.html#http_response_headerssent 참조
참고 : 이것은 Niko가 언급 한 이전 Connect 'headerSent'속성과 비교하여 선호하는 방법입니다.
다른 답변은 Node.js 또는 Github 웹 사이트를 가리 킵니다.
아래는 Expressjs 웹 사이트에서 가져온 것입니다 : https://expressjs.com/en/api.html#res.headersSent
app.get('/', function (req, res) {
console.log(res.headersSent); // false
res.send('OK');
console.log(res.headersSent); // true
});
참고 URL : https://stackoverflow.com/questions/12030107/express-js-how-to-check-if-headers-have-already-sent
'developer tip' 카테고리의 다른 글
XAML의 부울 CommandParameter (0) | 2020.11.16 |
---|---|
하이 차트 차트에서 모든 계열 데이터를 제거하는 올바른 방법은 무엇입니까? (0) | 2020.11.16 |
Lodash를 Angular JS와 함께 사용하는 방법은 무엇입니까? (0) | 2020.11.16 |
모든 개발자가 알아야 할 기본적인 명확한 개념은 무엇입니까? (0) | 2020.11.16 |
jQuery의 keydown () 이벤트 핸들러에서 누른 문자를 디코딩하는 방법 (0) | 2020.11.16 |