目录

  • 一、简介
    • 1.1 请求方法
    • 1.2 匹配多个请求方法
    • 1.3 动态路由
  • 二、路由的创建
    • 2.1 创建单个路由
    • 2.2 创建多个路由

一、简介

1.1 请求方法

hapi路由支持以下常用方法(包括,但不限于):

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • OPTIONS

官方文档介绍说,除了HEAD方法不支持以外,其他的http请求方法都是支持的。

1.2 匹配多个请求方法

当需要匹配多个请求方法时,可以将数组作为method的值。例如:

server.route({method: ['GET', 'POST'],path: '/',handler: async (request, h) => {return 'hello world';}
});

要想匹配支持的全部请求方法时,可以用*匹配任意路由方法。

1.3 动态路由

动态路由可以在路由的path属性中通过{}花括号对路由中的变量进行声明。例如:

server.route({method: 'GET',path: '/book/{id}',handler: async (request, h) => {return request.params.id; // 这里params的属性要和动态路由的变量名对应}
});

二、路由的创建

2.1 创建单个路由

在《hapi.js入门系列(一)——一个简单的Hello World程序》中,已经大致讲了一下如何创建一个路由:

// 引入hapi依赖
const hapi = require('@hapi/hapi');const start = async () => {// 实例化一个server,并指定server的端口号const server = hapi.server({ port: 3000 });// 注册路由server.route({method: 'GET',path: '/',handler: (request, h) => {return 'hello world';}});// 启动服务await server.start();console.log(`server is running at ${server.info.uri}`);
};// 执行start()方法
start();

2.2 创建多个路由

创建多个路由可以有两种方法:

  • 方法一:多次使用server.route()方法,分别创建
  • 方法二:使用一次server.route()方法,传入一个数组

方法一示例:

// 引入hapi依赖
const hapi = require('@hapi/hapi');const start = async () => {// 实例化一个server,并指定server的端口号const server = hapi.server({ port: 3000 });// 注册路由1server.route({method: 'GET',path: '/',handler: (request, h) => {return 'hello world';}});// 注册路由2server.route({method: 'GET',path: '/login',handler: (request, h) => {return 'login page';}});// 启动服务await server.start();console.log(`server is running at ${server.info.uri}`);
};// 执行start()方法
start();

方法二示例:

// 引入hapi依赖
const hapi = require('@hapi/hapi');const start = async () => {// 实例化一个server,并指定server的端口号const server = hapi.server({ port: 3000 });// 批量注册路由server.route([{method: 'GET',path: '/',handler: (request, h) => {return 'hello world';}},{method: 'GET',path: '/login',handler: (request, h) => {return 'login page';}}]);// 启动服务await server.start();console.log(`server is running at ${server.info.uri}`);
};// 执行start()方法
start();

hapi.js入门系列(二)——路由相关推荐

  1. hapi.js入门系列(一)——一个简单的Hello World程序

    目录 简介 一.安装hapi 1.1 创建项目 1.2 初始化package.json 1.3 安装Hapi依赖 二.一个简单的hello world程序 2.1 创建一个最基础的服务 2.2 添加一 ...

  2. 视频教程-零基础JS入门系列课程(2)之JS语法基础精讲-JavaScript

    零基础JS入门系列课程(2)之JS语法基础精讲 螺钉课堂讲师,擅长Vue.React.ReactNative.NodeJS等前端框架及技术 邓老师 ¥59.00 立即订阅 扫码下载「CSDN程序员学院 ...

  3. 机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程

    机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程) 目录(?)[+] 一多变量的线性回归 二批处理 三特征缩放 四正规方程 五多变量非线性回归 一.多变量的线性回归 在#机 ...

  4. C语言速看,C语言高速入门系列(二)

    C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...

  5. Quantopian 入门系列二 - 流水线 (下)

    本文含 8225 字,28 图表截屏 建议阅读 42 分钟 本贴接着上贴[Quantopian 入门系列二 - 流水线 (上)]的内容,讨论下面目录的 5- 8 节: 简介 因子 筛选器 分类器 掩码 ...

  6. Reflex WMS入门系列二十五:将叉车纳入系统进行管理

    Reflex WMS入门系列二十五:将叉车纳入系统进行管理 据笔者所知,SAP WM 模块里是不对仓库里常用的叉车等仓库管理工具进行管理的.笔者发现,Reflex WMS系统则会在很多仓库部门日常操作 ...

  7. Reflex WMS入门系列二十二:物料库存报表

    Reflex WMS入门系列二十二:物料库存报表 在Reflex WMS系统上,我们可以通过物料号查询它的HD列表,或者IPG列表.通过在其HD/IPG信息得知其库存数据.当然还可以通过如下方式直接获 ...

  8. Reflex WMS入门系列二十三:几个库存相关的报表

    Reflex WMS入门系列二十三:几个库存相关的报表 Reflex WMS系统作为一个主流的仓库管理软件系统,自然需要对仓库里的库存有多个角度的报表功能.比如常见的slow-moving, agin ...

  9. Reflex WMS入门系列二十六:合并托盘

    Reflex WMS入门系列二十六:合并托盘 仓库管理业务实践中,对于仓库里的库存,将几个零托合并成一个托,也是比较常见的作业.Reflex WMS系统自然要能支持这种合并托盘(Merge HDs)的 ...

  10. Reflex WMS入门系列二十八:空白标签打印

    Reflex WMS入门系列二十八:空白标签打印 贴在托盘上的标签,因托盘上的货物的移动,使用等缘故可能会导致标签丢失.在很多场景下又需要扫描托盘标签,所以Reflex WMS系统提供了打印空白标签的 ...

最新文章

  1. OpenCV中BLOB特征提取与几何形状分类
  2. linux vi 清除所有,Vi命令:如何删除全部内容
  3. MySQL中同一时候存在创建和上次更新时间戳字段解决方法浅析
  4. zabbix监控mysql最简单的方法
  5. kafka 同步提交 异步_极限MQ (5) Kafka 消费者
  6. Mysql错误1366 - Incorrect integer value解决方法
  7. 【渝粤题库】广东开放大学 Linux操作系统 形成性考核
  8. [Java] [Lock] [Synchronized VS ReentrantLock]
  9. 项目中记录影响性能的缓慢数据库查询
  10. java 时间戳的获取方式
  11. Nginx学习笔记:基础
  12. 【从C到C++学习笔记】面向对象/抽象/封装/继承/多态
  13. Centos7安装Rarlinux解压rar文件
  14. 浏览器无法下载PDF文件怎么办
  15. 抠图算法(交互式)以及证件照的自动抠图
  16. C# 模拟PCM数据并创建WAV文件
  17. 汇编语言0x2c,ARM汇编语言(4) 指令、伪操作、伪指令学习
  18. 从按下键盘到屏幕上显示字符计算机经过了哪些过程
  19. 大数据惊人:凌晨4点的中国人都在做什么?
  20. 出现了,PPT 制作新方式——GitHub 热点速览 v.21.19

热门文章

  1. 一、响应式编程基本介绍
  2. 写switch case语句不加break会怎样。
  3. Riemannian geometry applied to BCI classification
  4. 陈省身文集51——闭黎曼流形高斯-博内公式的一个简单的内蕴证明
  5. 企业软著申请流程 图文! 纯干货!
  6. xshell下载链接及安装步骤
  7. 将base64指纹编码输出为指定大小的图片
  8. 世界各个国家echarts地图展示
  9. ECC与Pairing前沿调研
  10. 噪声数据集:Noise-92