当前位置: 首页 > 面试题库 >

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

商辰钊
2023-03-14
问题内容

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


问题答案:

编辑:从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



 类似资料:
  • 问题内容: 有没有一种方法可以确定是否执行了Ajax回发,类似于我们的使用方式… …以确定是否正在执行按钮提交的回发。 我正在尝试检测来自jQuery的Ajax请求,但它也接收了我想排除的UpdatePanel请求,例如… 问题答案: 我不知道这是否会比您的解决方案更好,但是您是否尝试过?

  • 问题内容: 我有一个名为Person的表,一个名为ID的列,如何检查ID是否已经是FOREIGN KEY,原因是我想使用以下代码进行修改: 但是如果ID已经是FOREIGN KEY,则由于有两个级联的情况,它给我以下错误“可能导致循环或多个级联路径” …如何检查此字段是否为FOREIGN KEY以避免此错误? 问题答案: 您想看一下视图 虽然还不如应有的完整。这是您想要的最终查询: 浏览此处获取更

  • 问题内容: 我试图找到一种聪明的方法来找出传递给sed的文件是否已成功更改。 基本上,我想知道文件是否已更改,而不必查看文件修改日期。 我之所以需要这样做,是因为如果sed成功替换了模式,我需要做一些额外的事情。 我目前有: 上面的代码有点贵,我希望能够在这里使用一些技巧。 问题答案: 您可以改用: ” 我忽略了该功能:您可以根据需要使用Shell做重定向。 叹。下面有许多评论要求提供有关shel

  • 问题内容: 我想控制是否退出,但是找不到解决方法。 我还探讨了的属性,但是找不到任何特定的方法来获取有关驱动程序状态的信息。还要检查会话ID: 问题答案: 如果您探索python- selenium驱动程序的源代码,则将看到firefox驱动程序的方法在做什么: 您可以在此处依赖某些内容:检查是否存在或检查状态。它可以工作,但是您还可以看到只有“外部调用”,并且 在python端没有任何改变 可以

  • 问题内容: 如何检查我是否在代码中的某个位置导入了模块? 我想检查是否已经导入模块的原因是因为我有一个我不想导入的模块,因为有时会弄乱我的程序。 问题答案: 测试字典中的模块名称: 从文档中: 这是将模块名称映射到已经加载的模块的字典。 请注意,语句有两件事: 如果模块之前从未导入过(=中不存在= ),则将其加载并添加到中。 在当前名称空间中绑定1个或多个引用模块对象或模块名称空间成员的对象的名称

  • 问题内容: Express.JS提供了一些静态页面。设置很简单: 我希望响应包含一个附加的http标头( Access-Control-Allow-Origin:* )。应该放在哪里?我尝试了以下示例,但是标题仅出现在默认页面上: 谢谢。 问题答案: 我尝试了以下示例,但标题仅出现在默认页面上 是的,这是因为您仅为路由而不是其他路径定义了它。您应该改为使用中间件。 如果您希望为所有请求设置标题: