问题标签 [hapijs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Hapi.js 子域路由到插件
我正在寻找一种将不同子域路由到不同插件的方法。我查看了API 文档,没有发现任何有用的信息。
node.js - 如何使用 Server.inject 注入模拟测试 hapi
我想用实验室测试 hapi 路由,我使用的是 mysql 数据库。
使用 Server.inject 测试路由的问题是我无法模拟数据库,因为我没有调用包含处理程序函数的文件,那么如何在处理程序中注入模拟数据库?
javascript - 将 Joi 与 Hapi 一起使用时,如何在一个键上设置要求但允许任何和所有其他键?
我正在尝试为进入Hapi处理程序的 JSON 对象编写Joi验证。到目前为止,代码如下所示:
到目前为止,您可以在上面的 config: validate: code 部分中看到Joi对象验证。进来的 JSON 看起来像这样。
在上面的这个 JSON 中,对象根部的键和值是必需的,并且调用的部分ids_lot_args
是必需的。以 peripheral_data 开头的部分可能存在或不存在,也可能是任何其他 JSON 有效负载。没关系,只ids_lot_args
需要根级别和值内部的key和value。
到目前为止,我在尝试让Joi验证工作时磕磕绊绊。 关于如何设置的任何想法?Joi 的代码仓库位于https://github.com/hapijs/joi,如果您想查看的话。到目前为止,我一直在尝试允许对象上的所有功能无济于事。
javascript - 使用 Hapi.js 框架的多个服务器实例
出于几个原因,我正在接近这个 node.js 框架。简单、出色的模块化和开箱即用的快速配置。很快就遇到了在学习express.js框架的过程中从未见过的Pack概念。以下示例来自官方指南:
他们说Pack:
Packs 是 hapi 将多个服务器组合成一个单元的一种方式,旨在在使用插件时提供统一的界面。
这个概念对我来说很奇怪。我们在一个项目中使用不同的服务器多少次?另外我不清楚我是否应该每次都调用 pack 来在 hapi 中注册一个插件。
更新:这是pre v8 api代码,注册插件的方式已经改变。(register
直接拨打电话server
)
javascript - 在暴露之前需要模块的节点导致未定义
我最终试图var server = require('../../index.js');
在我的foo-dao.js
文件中要求,这样我就可以访问 hapi 服务器插件,而不必通过 hapirequest
对象从控制器传递到 dao。
尝试在文件顶部要求 index.js 时,可以在我的 foo-dao.js 方法的注释中看到该问题。
我相信问题是因为在我的 index.js 中,它需要 ./modules 文件夹,该文件夹需要 ./modules/foo/foo-routes.js 需要 ./modules/foo/foo-ctrl.js 需要./modules/foo/foo-dao.js。
这是需求的简化视图
./modules/index.js -> ./modules/foo/foo-routes.js -> ./modules/foo/foo-ctrl.js -> ./modules/foo/foo-dao.js -> ./ modules/index.js <-- 问题出在这里,因为我在 INDEX.JS 中的服务器变量尚未公开。
/hapi/index.js
/hapi/modules/foo/foo-routes.js
/hapi/modules/foo/foo-ctrl.js
/hapi/modules/foo/foo-dao.js
node.js - 实验室返回错误没有方法“实验”
我正在为一个函数编写测试代码,该函数将检查 twitter 中是否存在用户名。我正在使用 Hapi 框架和实验室进行测试。
当我运行时,npm test
我收到以下错误:
我的测试代码是:
package.json
我在我的文件中安装了最新版本的节点和所有必要的依赖项。什么可能导致此错误?
javascript - 身份验证后 Yahoo API 的问题
我一直在寻找这个问题的答案,但我似乎无法找到答案。我已经尝试了几件事,所有这些我都会在这里列出,希望有人能指出我正确的方向。
首先,我使用 Hapi 框架构建了一个简单的 Node 应用程序。此外,我正在使用同样来自 Hapi 家伙的 Bell 库来通过 Yahoo 进行身份验证,并使用 hapi-auth-cookie 来设置我的会话与身份验证结果。据我所知,这工作得很好。
一旦用户通过身份验证,贝尔就会向我提供一个令牌和一个秘密。
令牌看起来像这样:
秘密看起来像这样:
因此,一旦我进行身份验证并被重定向到我的主页,我就有了这两个并设置了一个 cookie。我的理解是我准备好了。然后我尝试使用以下 URL 访问 Yahoo API:
点击此 URL 的响应是:
显然,我要访问的 URL 不完整。但是,我不确定所需的参数是什么。我去过雅虎文档 1000 次,但我似乎找不到这个具体的答案。那里的所有示例大多与身份验证位有关,我应该这样做。所以,希望我能走运,我开始尝试在 URL 中传递令牌和秘密。在这一个中,我尝试了 API URL + 令牌 + 秘密 + 签名。我使用的令牌和秘密是上面提到的贝尔提供的:
现在,它告诉我令牌被拒绝:
我也尝试过没有签名,在这种情况下,错误告诉我签名丢失。
这里的任何帮助将不胜感激。从过去一周的搜索中,我发现 Yahoo API 并不是最容易使用的东西,但希望有人在这里有一些见解,因为我似乎很接近。我希望我包含了您需要的所有信息,谢谢!
node.js - 在查询请求的情况下,路径的结构是什么?
我正在使用 hapi.js,但我不清楚一件事。如果我在路径中发出 api 请求传递参数,我可以通过在处理程序中调用 request.params 来获取这些参数。当我以查询的形式请求时,路径应该是什么?在第一种情况下,我在路径属性中放置 /{param} 之类的东西,但在第二种情况下?
javascript - 我应该创建一个 hapijs 插件还是使用 server.ext 来筛选标题中的 api-key
所以我想检查所有到我的 hapi rest api 的 http 路由,以获取有效的 api 密钥。我不想使用身份验证插件,因为除了 api 令牌检查之外,我还将在某些路由上进行基本身份验证。我习惯于在 express 中将其作为中间件,但是 hapi 中的正确方法是什么?
我应该创建自己的插件还是使用 server.ext 来完成此操作.. 还是应该以另一种方式进行?
到目前为止,这是我所做的方式
javascript - 使用 Good 在 Hapi.js 中记录请求和响应负载
我正在使用 Hapi.js 为我的移动应用程序实现 RESTful API。我已经集成了 Good 用于记录请求、错误和其他事件。它对我来说效果很好。但是,尚不清楚如何记录请求和响应负载(JSON 对象)。
我将不胜感激任何帮助。