pow*_*boy 65 javascript node.js response-headers express
我正在写一个可以设置标题的库.如果标头已经发送,我想给出一个自定义错误消息,而不是让它失败,Node.js给出的"无法在发送标题后设置标题".那么如何检查标头是否已经发送?
Wil*_*der 147
Node支持res.headersSent这些天,所以你可以/应该使用它.它是一个只读布尔值,表示标头是否已被发送.
if(res.headersSent) { ... }
Run Code Online (Sandbox Code Playgroud)
请参阅http://nodejs.org/api/http.html#http_response_headerssent
注意:与Niko提到的旧版Connect'leaderSent'属性相比,这是首选方法.
Nik*_*iko 45
编辑:从快递4.x开始,您需要使用res.headersSent.另请注意,您可能希望在检查之前使用setTimeout,因为在调用res.send()之后它不会立即设置为true.资源
简单: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;
});
Run Code Online (Sandbox Code Playgroud)
https://github.com/senchalabs/connect/blob/master/lib/patch.js#L22
其他答案指向Node.js或Github网站。
以下来自Expressjs网站:https ://expressjs.com/en/api.html#res.headers已发送
app.get('/', function (req, res) {
console.log(res.headersSent); // false
res.send('OK');
console.log(res.headersSent); // true
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28725 次 |
| 最近记录: |