如果你正在寻找一个高效的路由插件来优化你的 Hapi.js 应用程序,那么 hapi-router 插件是一个不错的选择。
什么是 hapi-router?
hapi-router 是一个 Hapi.js 插件,它简化了路由的创建和管理。采用 hapi-router 插件可以轻松创建和维护复杂的路由,并且改善了应用程序的结构。
安装 hapi-router
安装 hapi-router 的方法如下:
npm install hapi-router --save
使用 hapi-router
在使用 hapi-router 插件之前,首先需要确保你已经正确安装了 Hapi.js 和 hapi-router。
定义路由
hapi-router 通过自动化路由定义,使这项工作变得更加容易。你可以在定义各种路由时,通过在目录结构中使用标记,在路由上下文中添加额外的元数据。这种方法有助于您在应用程序的不同部分之间快速切换。
这里是一个基本路由定义的例子:
-- -------------------- ---- ------- -- ----- ------------------- -------------- - - - ------- ------ ----- ---- ---------------- -- - ------ ------- ---------- -- -- - ------- ------ ----- --------- ---------------- -- - ------ ------ ------ -- -- --
你可以通过以下方式使用上面定义的路由:
-- -------------------- ---- ------- -- ----- ----------- ----- ---- - ---------------------- ----- ---------- - ----------------------- ----- ------ - --- ------------- ----- ----- ----- ------------ --- ----- ------ - - ------- ---------- -- ----------------- ------- ----------- -------- - ------- ------- ------------------- -- --- ---------------------- -- - ------------------- ------- -- ---- ----------------- ---
上面的示例展示了一个如何在 Hapi.js 应用程序中使用 hapi-router 的通用用途。
插件配置对象必须传递一个 routes 参数,它定义了要应用于使用 hapi-router 的所有路由的前缀。我们在这里使用 prefix 属性将路由前缀设置为 /api/v1。
options 对象还接收用于指定处理程序的路由文件位置,文件路径的格式采用任何从 glob 式样兼容的方式来支持多个定义。在本例中,路由配置保存在 ./routes/**/* .js 中。
嵌套路由
通常,应用程序中的路由很容易分为多个路由处理程序。使用 hapi-router,你可以将这些路由定义分解为单独的文件,然后将这些文件与主路由文件合并。这种设计模式有助于让你掌握应用程序的结构,并在多个独立路由处理程序之间更轻松地进行切换。
我们可以构建一个像这样的嵌套路由:
-- -------------------- ---- ------- -- ----- --------------- -------------- - - - ------- ------ ----- ---------------- ---------------- -- - ------ ---- --- ------- -- -- - ------- ------ ----- --------------------- ---------------- -- - ------ ---- ---- -- --- ---------------------- -- -- --
-- -------------------- ---- ------- -- ----- ----------------- -------------- - - - ------- ------ ----- ---- ---------------- -- - ------ ----- ------ -- -- - ----- ------- -------- ----------------- -- --
再次更新主服务器文件:
-- -------------------- ---- ------- -- ----- ----------- ----- ---- - ---------------------- ----- ---------- - ----------------------- ----- ------ - --- ------------- ----- ----- ----- ------------ --- ----- ------ - - ------- ---------- -- -------------- ------- ------ ----- ---- ---------------- -- - ------ ----- ------ -- --- ----------------- ------- ----------- -------- - ------- ------- ------------------- -- --- ---------------------- -- - ------------------- ------- -- ---- ----------------- ---
在上面的示例中,我们创建了 src/routes/api.js,其中包含两个路由。接下来,我们在 src/routes/index.js 中创建组路由,该路由将在 /api 路径下提供关联的 api 路由。
在主服务器中,我们可以将主页路由放置在单独的 server.route() 调用中,并使用 server.register() 方法将 hapi-router 插件与我们的应用程序一起使用。
路由处理函数
在 hapi-router 中,你可以使用封装在路由定义对象中的所有处理函数。下列这些属性都可以存在于路由定义对象中:
config
- 封装在每个路由中的配置信息。handler
- 定义在路由上下文中的处理函数。validate
- 当值被提供时,定义一个 Joi Schema 以校验请求参数。bind
- 在路由处理函数中定义 this 上下文。description
- 路由的描述信息。
总结
使用 hapi-router 插件,我们可以更轻松地定义和管理路由。我们可以将路由定义存储在单独的文件中,这有助于在不同的路由处理程序之间轻松切换。我们也可以在路由定义上下文中使用元数据,并使用路由上下文中默认封装的处理函数。
因此,这些是您应该知道的 hapi-router 插件的基础知识,这是 Hapi.js 开发的一个强大工具。需要注意的是,这只是 hapi-router 提供的功能的冰山一角,你可以通过阅读官方文档来深入了解。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649e8adf48841e9894b0fd35