Hapi 18.1.0 版本更新日志及相关说明

Hapi 是一个用于构建 web 应用程序和服务的 Node.js 框架,它提供了一套强大的 API 和工具,使开发者可以快速构建安全、可靠、可扩展的应用程序。最近,Hapi 推出了 18.1.0 版本,本文将介绍此版本的更新日志及相关说明。

更新日志

以下是 Hapi 18.1.0 版本的更新日志:

新功能

  • 添加了 server.inject() 方法的 onEnd 选项。该选项允许开发者在请求完成后执行一些操作,例如记录请求信息或清理资源。

  • 添加了 server.lookup() 方法,该方法允许开发者根据请求的路径查找路由信息。

  • 添加了 server.realm.modifiers.route.prefix 配置选项,该选项允许开发者为路由设置前缀。

  • 添加了 router.route() 方法,该方法允许开发者手动添加路由。

  • 添加了 route.auth.access() 方法,该方法允许开发者在路由级别上设置访问控制。

  • 添加了 route.auth.scope 配置选项,该选项允许开发者在路由级别上设置访问权限。

修复

  • 修复了 response.isBoom 属性在某些情况下返回错误的问题。

  • 修复了在某些情况下无法访问 server.realm 属性的问题。

  • 修复了在某些情况下无法使用 server.realm.modifiers.route.prefix 配置选项的问题。

  • 修复了在某些情况下无法使用 route.auth.access() 方法的问题。

相关说明

server.inject() 方法的 onEnd 选项

server.inject() 方法是 Hapi 框架中用于模拟请求的方法,可以用于测试路由和处理程序的行为。在 18.1.0 版本中,server.inject() 方法新增了 onEnd 选项,该选项可以用于在请求完成后执行一些操作。例如,我们可以使用 onEnd 选项记录请求信息:

在上面的示例中,我们在 server.inject() 方法中设置了 onEnd 选项,该选项接收两个参数:reqres,分别表示请求和响应。在 onEnd 方法中,我们可以记录请求的方法、URL 和响应的状态码。

server.lookup() 方法

server.lookup() 方法可以根据请求的路径查找路由信息。例如,我们可以使用 server.lookup() 方法获取 /users 路径的路由信息:

在上面的示例中,我们使用 server.lookup() 方法获取了 /users 路径的路由信息,并输出了路由的路径。

server.realm.modifiers.route.prefix 配置选项

server.realm.modifiers.route.prefix 配置选项可以用于为路由设置前缀。例如,我们可以使用 server.realm.modifiers.route.prefix 配置选项为路由设置 /api 前缀:

在上面的示例中,我们使用 server.realm.modifiers.route.prefix 配置选项为路由设置了 /api 前缀,因此 /users 路径实际上是 /api/users。注意,server.realm.modifiers.route.prefix 配置选项是在服务器级别上设置的,因此所有路由都会受到影响。

router.route() 方法

router.route() 方法可以用于手动添加路由。例如,我们可以使用 router.route() 方法手动添加一个路由:

在上面的示例中,我们使用 server._core.router 获取了路由器对象,并使用 router.route() 方法手动添加了一个路由。使用 router.route() 方法时,需要传入一个包含路由信息的对象,包括方法、路径和处理程序。

route.auth.access() 方法

route.auth.access() 方法可以用于在路由级别上设置访问控制。例如,我们可以使用 route.auth.access() 方法设置只有管理员才能访问 /admin 路径:

在上面的示例中,我们在路由的配置对象中添加了 auth 属性,并在 auth 属性中设置了 access 属性。access 属性包含一个 scope 属性,该属性设置了访问权限。在这个例子中,只有具有 admin 权限的用户才能访问 /admin 路径。

route.auth.scope 配置选项

route.auth.scope 配置选项可以用于在路由级别上设置访问权限。例如,我们可以使用 route.auth.scope 配置选项设置只有具有 admin 权限的用户才能访问 /admin 路径:

在上面的示例中,我们在路由的配置对象中添加了 auth 属性,并在 auth 属性中设置了 scope 属性。scope 属性设置了访问权限,只有具有 admin 权限的用户才能访问 /admin 路径。

总结

Hapi 18.1.0 版本的更新日志中新增了许多有用的功能和修复了一些问题。其中,server.inject() 方法的 onEnd 选项和 server.lookup() 方法特别值得关注。此外,server.realm.modifiers.route.prefix 配置选项、router.route() 方法、route.auth.access() 方法和 route.auth.scope 配置选项也可以让开发者更方便地构建安全、可靠、可扩展的应用程序。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655ecc08d2f5e1655d8f239f


纠错
反馈