问题标签 [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.

0 投票
1 回答
993 浏览

javascript - Hapi.js 子域路由到插件

我正在寻找一种将不同子域路由到不同插件的方法。我查看了API 文档,没有发现任何有用的信息。

0 投票
1 回答
3989 浏览

node.js - 如何使用 Server.inject 注入模拟测试 hapi

我想用实验室测试 hapi 路由,我使用的是 mysql 数据库。

使用 Server.inject 测试路由的问题是我无法模拟数据库,因为我没有调用包含处理程序函数的文件,那么如何在处理程序中注入模拟数据库?

0 投票
3 回答
4450 浏览

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,如果您想查看的话。到目前为止,我一直在尝试允许对象上的所有功能无济于事。

0 投票
4 回答
3520 浏览

javascript - 使用 Hapi.js 框架的多个服务器实例

出于几个原因,我正在接近这个 node.js 框架。简单、出色的模块化和开箱即用的快速配置。很快就遇到了在学习express.js框架的过程中从未见过的Pack概念。以下示例来自官方指南:

他们说Pack:

Packs 是 hapi 将多个服务器组合成一个单元的一种方式,旨在在使用插件时提供统一的界面。

这个概念对我来说很奇怪。我们在一个项目中使用不同的服务器多少次?另外我不清楚我是否应该每次都调用 pack 来在 hapi 中注册一个插件。

更新:这是pre v8 api代码,注册插件的方式已经改变。(register直接拨打电话server

0 投票
1 回答
448 浏览

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

0 投票
2 回答
876 浏览

node.js - 实验室返回错误没有方法“实验”

我正在为一个函数编写测试代码,该函数将检查 twitter 中是否存在用户名。我正在使用 Hapi 框架和实验室进行测试。

当我运行时,npm test我收到以下错误:

我的测试代码是:

package.json我在我的文件中安装了最新版本的节点和所有必要的依赖项。什么可能导致此错误?

0 投票
1 回答
1143 浏览

javascript - 身份验证后 Yahoo API 的问题

我一直在寻找这个问题的答案,但我似乎无法找到答案。我已经尝试了几件事,所有这些我都会在这里列出,希望有人能指出我正确的方向。

首先,我使用 Hapi 框架构建了一个简单的 Node 应用程序。此外,我正在使用同样来自 Hapi 家伙的 Bell 库来通过 Yahoo 进行身份验证,并使用 hapi-auth-cookie 来设置我的会话与身份验证结果。据我所知,这工作得很好。

一旦用户通过身份验证,贝尔就会向我提供一个令牌和一个秘密。

令牌看起来像这样:

秘密看起来像这样:

因此,一旦我进行身份验证并被重定向到我的主页,我就有了这两个并设置了一个 cookie。我的理解是我准备好了。然后我尝试使用以下 URL 访问 Yahoo API:

点击此 URL 的响应是:

显然,我要访问的 URL 不完整。但是,我不确定所需的参数是什么。我去过雅虎文档 1000 次,但我似乎找不到这个具体的答案。那里的所有示例大多与身份验证位有关,我应该这样做。所以,希望我能走运,我开始尝试在 URL 中传递令牌和秘密。在这一个中,我尝试了 API URL + 令牌 + 秘密 + 签名。我使用的令牌和秘密是上面提到的贝尔提供的:

现在,它告诉我令牌被拒绝:

我也尝试过没有签名,在这种情况下,错误告诉我签名丢失。

这里的任何帮助将不胜感激。从过去一周的搜索中,我发现 Yahoo API 并不是最容易使用的东西,但希望有人在这里有一些见解,因为我似乎很接近。我希望我包含了您需要的所有信息,谢谢!

0 投票
1 回答
2495 浏览

node.js - 在查询请求的情况下,路径的结构是什么?

我正在使用 hapi.js,但我不清楚一件事。如果我在路径中发出 api 请求传递参数,我可以通过在处理程序中调用 request.params 来获取这些参数。当我以查询的形式请求时,路径应该是什么?在第一种情况下,我在路径属性中放置 /{param} 之类的东西,但在第二种情况下?

0 投票
2 回答
1554 浏览

javascript - 我应该创建一个 hapijs 插件还是使用 server.ext 来筛选标题中的 api-key

所以我想检查所有到我的 hapi rest api 的 http 路由,以获取有效的 api 密钥。我不想使用身份验证插件,因为除了 api 令牌检查之外,我还将在某些路由上进行基本身份验证。我习惯于在 express 中将其作为中间件,但是 hapi 中的正确方法是什么?

我应该创建自己的插件还是使用 server.ext 来完成此操作.. 还是应该以另一种方式进行?

到目前为止,这是我所做的方式

0 投票
2 回答
3921 浏览

javascript - 使用 Good 在 Hapi.js 中记录请求和响应负载

我正在使用 Hapi.js 为我的移动应用程序实现 RESTful API。我已经集成了 Good 用于记录请求、错误和其他事件。它对我来说效果很好。但是,尚不清楚如何记录请求和响应负载(JSON 对象)。

我将不胜感激任何帮助。