首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在使用`hapi`时,如何在响应结束时得到通知?

在使用`hapi`时,如何在响应结束时得到通知?
EN

Stack Overflow用户
提问于 2016-10-06 16:34:20
回答 3查看 423关注 0票数 0

我正在尝试将一些中间件从express迁移到hapi。下面是express中的内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const express = require('express')
const server = express()

server.use(function (req, res, next) {
  const start = Date.now()
  res.on('finish', () => {
    console.log('Timestamp', Date.now() - start)
  })

  next()
})

//...

在使用hapi时,我找不到一种很好的方法来在同一个闭包内响应完成时得到通知,这样我就可以使用我在请求开始时设置的初始数据……

我得到的最接近的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const Hapi = require('hapi')
const server = new Hapi.Server()

server.ext('onPreResponse', (request, reply) => {
  const start = Date.now()
  request.response.once('finish', () => {
    console.log('Timestamp', Date.now() - start)
  })

  return reply.continue()
})

// ...

但是错误响应似乎将request.response设置为null,因此我无法向其添加侦听器。

有什么建议吗?

EN

回答 3

Stack Overflow用户

发布于 2016-10-06 17:41:07

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 server.ext('onPreResponse', function (request, reply) {
    request.response.once('finish', function () {    

    });   
    reply.continue(); 
});
票数 0
EN

Stack Overflow用户

发布于 2016-10-07 08:52:07

您可以使用request.raw.reqend事件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.ext('onPreResponse', (request, reply) => {

    request.raw.req.once('end', () => console.log('DONE!!!'));
    return reply.continue();
});
票数 0
EN

Stack Overflow用户

发布于 2018-07-05 17:55:39

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
request.response.events.once('finish', () => console.log('DONE!!!'));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39901335

复制
相关文章
Elasticsearch:如何在搜索时得到精确的总 hits 数
从 Elasticsearch 7.0之后,为了提高搜索的性能,在 hits 字段中返回的文档数有时不是最精确的数值。Elasticsearch 限制了最多的数值为10000。
腾讯云大数据
2020/10/29
7.6K0
Elasticsearch:如何在搜索时得到精确的总 hits 数
如何在Ubuntu 16.04上使用Concourse CI设置持续集成管道
Concourse CI是一个现代的,可扩展的集成系统,旨在通过可组合的声明性语法自动测试管道。
GeekZ
2018/08/10
4.3K0
java(JVM)结束时释放JNI资源(Runtime.addShutdownHook)
如下代码中cmjnidrv是一个动态库,CodeCacheManager在类加载时就自动将cmjnidrv加载进来。cmjnidrv中有多个独立的线程在运行并申请了大量的内存. release()是个native方法,用于释放cmjnidrv中的申请资源并中止cmjnidrv中的线程。 为了保证在java应用结束的时候cmjnidrv的资源能被正确释放,就必须确保release()被调用。
10km
2022/05/07
9600
mysql在开始与结束时间过滤出有效的价格且结束时间可以为空
在商品配置中设置有售卖时间,同一个商品可以设置多组不同的售卖时间,其中开始时间必填,结束时间可以不填,但是同一时刻只会有一个正在生效的时间区间。
翎野君
2023/05/12
5150
解决在python中进行CGI编程时无法响应的问题
在阅读《python编程》第一章的CGI编程部分时,出现了无法响应的问题,最后参考 解决了问题,在此做个记录
用户7886150
2020/12/28
1.3K0
如何在WordPress中禁用更新通知
您是否为不需要任何更新的客户创建WordPress网站?然后,您可能希望在WordPress中禁用更新通知。更新通知对客户端来说有点吓人,因此删除它是一个更好的主意。
许都博客
2021/06/15
1.7K0
如何在程序中加入Growl通知
Growl for Windows – Mac 样式的信息提示工具。目前已经支持的软件包括:Outlook,Visual Studio 等以及一个利用命令行从本地或者远程发送消息过来的工具 .Growl是一个非常好用的通知框架,可以帮助你轻松制作各种非常酷的事件通知效果。这个教程教你如何简单地在自己的应用程序里加入Growl通知。在程序里加入growl通知很容易。在http://www.growlforwindows.com/gfw/about.aspx 下载Growl for Windows ,安装后在程
张善友
2018/01/19
1.1K0
如何在程序中加入Growl通知
emlog被评论时邮件通知插件
测试图: 如果发信邮箱是QQ邮箱要申请授权码,需要到QQ邮箱网页版的设置页面进行设置并申请授权码! 也可以去注册一个QQ企业邮箱,很方便,填写邮箱和密码就可以了! 可以使博客逼格提升,让你不
雨尘
2018/07/17
4670
hapi vs. express [1] —— 路由
express 与 hapi 是两个基于 nodejs 的 web server 开发框架,它们由于设计理念的不同,各有优缺点
IMWeb前端团队
2019/12/04
8290
hapi vs. express [1] —— 路由
hapi vs. express [1] —— 路由 前言 express 与 hapi 是两个基于 nodejs 的 web server 开发框架,它们由于设计理念的不同,各有优缺点 本文主要介绍
IMWeb前端团队
2017/12/29
8820
实现倒计时、计算通话结束时距离现在过了多久
这里写目录标题 计算通话结束时距离现在过了多久 倒计时 计算通话结束时距离现在过了多久 String strTime = ""; Date callDate = callRecord.getCallDate();//通话结束时时间 long callTime = callDate.getTime();//返回通话结束时时间毫秒值 long currentTimeMillis = System.currentTimeMillis();//当前时间毫秒值
是阿超
2022/06/07
3610
【静默】Oracle各类响应文件何在?
1、创建数据库的响应文件:$ORACLE_HOME/assistants/dbca/dbca.rsp
AiDBA宝典
2019/09/29
9050
【静默】Oracle各类响应文件何在?
利用alertover发送获取响应失败的通知消息
本人在做接口自动化时候,因为服务器不稳定造成可能的用例失败,但这个失败表象只是在获取响应实体的json对象时为空,在后期排查问题时可能造成困扰,所以特意加了一个获取响应失败的通知,目的就是即使了解到服务器异常。暂时用的是免费的alertover,用了很久,简单可靠是它的优点,后续会加入微信提醒。分享代码,供大家参考。
FunTester
2019/09/10
1.4K0
RxJS 在 Angular响应式表单中的使用
FormControl 的 valueChanges 属性和 statusChanges 属性包含了会发出变更事件的可观察对象。 例子
mafeifan
2019/03/04
5.2K0
如何在条码打印软件中使用打印时保存
有些客户在条码打印软件中批量制作完成标签之后,想要把标签内容以txt文本的形式保存出来,可以把标签上的每个内容分别保存到一个TXT文本,也可以把标签上的多个内容保存到一个TXT文本中,条码打印软件中打印时保存就可以实现这个效果,具体操作如下:
用户5746110
2019/07/03
2.4K0
在2022年使用Python调用Windows 11的通知系统
在这之前我通常使用Windows-10-Toast-Notifications来调用Windows的通知系统,但是从我更新到了22622后我发现这个库现在不起作用,于是几经辗转,找到了一个可用的库。
Moemu
2023/05/04
2.4K0
在2022年使用Python调用Windows 11的通知系统
Spring在无RedirectAttributes的情况下(如Interceptor中)使用Flash scope
判断逻辑很简单,但是重定向的时候需要前台有消息提示,如果是在Controller中,可以在方法上注入RedirectAttributes参数,但是Interceptor中默认没有这个参数,那么我们如何实现RedirectAttributes的flashMessage功能呢?
飞奔去旅行
2019/06/13
5.5K0
如何使用Node.js和Github Webhooks保持远程项目同步
在处理具有多个开发人员的项目时,当一个人推送到存储库然后另一个人开始对过时版本的代码进行更改时,这可能会令人沮丧。像这些花费时间的错误,这使得设置脚本以保持您的存储库同步是值得的。您还可以在生产环境中应用此方法以快速推送修补程序和其他更改。
小翼111
2018/11/05
3.9K0
不可错过的Node.js框架
前言 Node.js是由Ryan Dahl于2009年创建的。它是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序,它是基于Google Chrome V8 JavaScript引擎构建的。Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。你可以通过在Node.js中运行JavaScript,使用Ruby或者PHP语言做想做的任何事情。 由于其具有可以方便地搭建响应速度快、易于扩展的网络应用等特性,Node.js受到了Netflix,
xiangzhihong
2018/02/05
3.4K0
点击加载更多

相似问题

在linux下如何在进程结束时得到通知?

34

在处理结束时以编程方式得到通知

13

web响应解析结束时的通知

10

Android:可以在日历事件开始/结束时得到通知吗?

14

如何在视频结束时显示通知?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文