hapi.js入门系列(二)——路由
目录
- 一、简介
- 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入门系列(二)——路由相关推荐
- hapi.js入门系列(一)——一个简单的Hello World程序
目录 简介 一.安装hapi 1.1 创建项目 1.2 初始化package.json 1.3 安装Hapi依赖 二.一个简单的hello world程序 2.1 创建一个最基础的服务 2.2 添加一 ...
- 视频教程-零基础JS入门系列课程(2)之JS语法基础精讲-JavaScript
零基础JS入门系列课程(2)之JS语法基础精讲 螺钉课堂讲师,擅长Vue.React.ReactNative.NodeJS等前端框架及技术 邓老师 ¥59.00 立即订阅 扫码下载「CSDN程序员学院 ...
- 机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程
机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程) 目录(?)[+] 一多变量的线性回归 二批处理 三特征缩放 四正规方程 五多变量非线性回归 一.多变量的线性回归 在#机 ...
- C语言速看,C语言高速入门系列(二)
C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...
- Quantopian 入门系列二 - 流水线 (下)
本文含 8225 字,28 图表截屏 建议阅读 42 分钟 本贴接着上贴[Quantopian 入门系列二 - 流水线 (上)]的内容,讨论下面目录的 5- 8 节: 简介 因子 筛选器 分类器 掩码 ...
- Reflex WMS入门系列二十五:将叉车纳入系统进行管理
Reflex WMS入门系列二十五:将叉车纳入系统进行管理 据笔者所知,SAP WM 模块里是不对仓库里常用的叉车等仓库管理工具进行管理的.笔者发现,Reflex WMS系统则会在很多仓库部门日常操作 ...
- Reflex WMS入门系列二十二:物料库存报表
Reflex WMS入门系列二十二:物料库存报表 在Reflex WMS系统上,我们可以通过物料号查询它的HD列表,或者IPG列表.通过在其HD/IPG信息得知其库存数据.当然还可以通过如下方式直接获 ...
- Reflex WMS入门系列二十三:几个库存相关的报表
Reflex WMS入门系列二十三:几个库存相关的报表 Reflex WMS系统作为一个主流的仓库管理软件系统,自然需要对仓库里的库存有多个角度的报表功能.比如常见的slow-moving, agin ...
- Reflex WMS入门系列二十六:合并托盘
Reflex WMS入门系列二十六:合并托盘 仓库管理业务实践中,对于仓库里的库存,将几个零托合并成一个托,也是比较常见的作业.Reflex WMS系统自然要能支持这种合并托盘(Merge HDs)的 ...
- Reflex WMS入门系列二十八:空白标签打印
Reflex WMS入门系列二十八:空白标签打印 贴在托盘上的标签,因托盘上的货物的移动,使用等缘故可能会导致标签丢失.在很多场景下又需要扫描托盘标签,所以Reflex WMS系统提供了打印空白标签的 ...
最新文章
- OpenCV中BLOB特征提取与几何形状分类
- linux vi 清除所有,Vi命令:如何删除全部内容
- MySQL中同一时候存在创建和上次更新时间戳字段解决方法浅析
- zabbix监控mysql最简单的方法
- kafka 同步提交 异步_极限MQ (5) Kafka 消费者
- Mysql错误1366 - Incorrect integer value解决方法
- 【渝粤题库】广东开放大学 Linux操作系统 形成性考核
- [Java] [Lock] [Synchronized VS ReentrantLock]
- 项目中记录影响性能的缓慢数据库查询
- java 时间戳的获取方式
- Nginx学习笔记:基础
- 【从C到C++学习笔记】面向对象/抽象/封装/继承/多态
- Centos7安装Rarlinux解压rar文件
- 浏览器无法下载PDF文件怎么办
- 抠图算法(交互式)以及证件照的自动抠图
- C# 模拟PCM数据并创建WAV文件
- 汇编语言0x2c,ARM汇编语言(4) 指令、伪操作、伪指令学习
- 从按下键盘到屏幕上显示字符计算机经过了哪些过程
- 大数据惊人:凌晨4点的中国人都在做什么?
- 出现了,PPT 制作新方式——GitHub 热点速览 v.21.19