前言
在前后端分离的开发模式下,前端的重要性日益显现。如今,前端已经不仅仅是网页布局和样式的展示,而是承担着越来越多的业务逻辑。而在前端开发中,我们会用到无数的工具和框架,npm 是必不可少的一部分。今天,我要介绍的是 hapi-what-dat 这一 NPM 包。
什么是 hapi-what-dat?
简单来说,hapi-what-dat 是一个基于 hapi.js 的插件,它能够提取 HTTP 请求头和 HTTP 方法参数中的数据,并通过 hapi.js 的路由将数据暴露出来。我们可以使用它来验证请求头、查询字符串和请求正文,以及使用身份验证锁定路线,等等。
快速入门
安装 hapi-what-dat
使用 npm 安装 hapi-what-dat:
npm install hapi-what-dat
使用 hapi-what-dat
首先,我们需要在项目中引入 hapi.js:
const Hapi = require('hapi'); const server = new Hapi.Server(); server.connection({ port: 3000, host: 'localhost' });
接下来,我们需要将 hapi-what-dat 插件注册到服务中:
-- -------------------- ---- ------- ----------------- --------- ------------------------- -------- - ---------------- - -- ----- ------ - -- ----- ----- -- -------- -------- -- ---- ----------- -------- -- ------ -- -- -------------- - -- ------ ----- - ----------- ----- -- ---- -- -- ---------------- - -- ------ ----- - ------ -------- -- ---- ----------- -------- -- ------ -- -- -- -- ----- -- - -- ----- - ------------------- ----- ---- - ---
现在,我们就可以在请求处理程序中获取请求头、查询字符串和请求正文的值了:
-- -------------------- ---- ------- -------- ---------------- ------ - ----- ----- - ------------------------------ -- ------- ----- - ----- ----- - --------------------------- -- -------- ---- - ----- ------- - --------------------- -- -------- ---- - ------------- --------- ------ --------- -------- ------------- - -------------- ------- ------- ----- -------- -------- ---
进阶使用方法
验证请求头
通过 validateHeaders 对象,我们可以验证请求头。比如说,我们要求 token 属性必须包含 test 字符串:
validateHeaders: { token: { headers: /test/i, failAction: 'error', }, },
这意味着如果请求头中的 token 属性不包含 test 字符串,请求将被拒绝并返回状态码 400,并且响应将包含以下错误信息:
{ "statusCode": 400, "error": "Bad Request", "message": "Value of header 'token' did not match required pattern: /test/i" }
验证查询参数
通过 validateQuery 对象,我们可以验证查询参数。比如说,我们要求请求必须包含 test 参数:
validateQuery: { test: { throwError: true, }, },
这意味着如果请求中不存在 test 参数,请求将被拒绝并返回状态码 400,并且响应将包含以下错误信息:
{ "statusCode": 400, "error": "Bad Request", "message": "Missing query parameter 'test'" }
验证请求正文
通过 validatePayload 对象,我们可以验证请求正文。比如说,我们要求请求正文中必须包含 test 字符串:
validatePayload: { test: { regex: /test/i, failAction: 'error', }, },
这意味着如果请求正文中不包含 test 字符串,请求将被拒绝并返回状态码 400,并且响应将包含以下错误信息:
{ "statusCode": 400, "error": "Bad Request", "message": "Invalid payload" }
其他配置
-- -------------------- ---- ------- ----------------- --------- ------------------------- -------- - ------------------ ---------- -- ----- ------------------ ---------- -- ----- --------------------- ------ -- -------- ---------------------------- --------- -- ---- ----------------------- -- -- --- -- -------- -- -- ----- -- - -- ----- - ------------------- ----- ---- - ---
总结
hapi-what-dat 是一个功能强大的 npm 包,它可以帮助我们处理请求头、查询字符串和请求正文,并在整个开发过程中提供各种请求验证方法。对于前端开发人员来说,它是一个不可或缺的工具。在实际应用中,我们可以根据自己的需求进行灵活配置,来实现更精细化的请求验证及其它相关操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d3381e8991b448daf24