一尘不染

Express.js-如何检查标头是否已发送?

node.js

我正在写一个可以设置标题的库。如果标题已经发送,我想给出一个自定义错误消息,而不是让它失败并显示Node.js给出的“发送后无法设置标题”消息。那么如何检查标头是否已经发送?


阅读 295

收藏
2020-07-07

共1个答案

一尘不染

编辑:从Express 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;
  });

https://github.com/senchalabs/connect/blob/master/lib/patch.js#L22

2020-07-07