问题标签 [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.
ios - JSON 输出为具有空白值的键
所以我有一本字典,我试图从 iOS 设备发送到 Node Hapi 服务器。
由于某种原因,我的请求有效负载正在将字典添加为具有空白值的键。这是我的 iOS 代码
这是我的有效载荷
谁能帮我这个?我不想将我的用户信息作为密钥保存在 mongo 中。只是看起来很奇怪。
node.js - 有没有办法查看 Hapi 服务器中的所有路由
我们正在开发一个 node.js Hapi 服务器,该服务器从 MongoDB 数据库中提取路由列表并设置所述路由以进行服务。这样,由于数据库中的重复路由条目,服务器可能会失败。
我试图查看,但未能找到在 Hapi 中检查重复路线的方法。
是否可以获得 Hapi 服务器当前正在服务的路由列表?
在尝试构建来自 MongoDB 的路由时,我可以进行比标准 try/catch 块更漂亮的错误检查吗?
设置路线的代码如下;请查看我在代码中的注释,了解我需要在哪里处理错误。
plugins - 全局访问插件 hapijs
有没有办法访问全局注册的插件?我已经阅读了 hapi-sequelize 并且我想将它实现到我的 hapi 应用程序中。这是文档。它在那里声明您可以使用以下代码全局访问它:
var db = plugin.plugins['hapi-sequelized'].models;
db.Test.create({
email: 'some@email.com',
password: 'alskfjdfoa'
});
我尝试将它插入到我的控制器中,但它似乎无法识别插件变量。
node.js - 是否可以在 hapi 中返回服务器方法的文件
我正在尝试将reply.file
(http://hapijs.com/api#replyfilepath-options)用于server.method
(http://hapijs.com/api#servermethodname-fn-options),但它说我的next
函数没有有file
:
我有以下内容:
可能吗?
我正在使用 hapi v6.9。
session - Hapi.js、CouchDB 和处理 AuthSession 令牌的问题
我的当前设置有问题。我正在使用 Hapi.js 和 CouchDB。我正在尝试使用 CouchDB cookie 身份验证。
我通过使用用户名和密码查询 /_session 从 CouchDB 获取 AuthSession 令牌。所以这很好。
问题是我不知道如何处理 AuthSession 令牌。在哪里存放?例如,我读过我可以将它存储在 Redis 中。但那怎么办?以什么格式?
假设我将用户的 ID 和 AuthSession 令牌保存到 Redis 中。然后假设有 5 个用户同时登录,因此 Redis 中有 5 个令牌。对于用户发出的每个请求,我如何知道从 Redis 获取哪个令牌?
javascript - phantomjs-node + 实验室(来自 hapijs 的测试实用程序)+ 测试覆盖率
我正在使用phantomjs-node,不幸的是,它不能很好地处理lab的测试覆盖率的东西。当我运行时lab -t 100
,它试图注入__$$labCov
传递给的函数page.evalute()
。但是,该函数不会在它出现的代码的上下文中执行。它在虚拟浏览器的上下文中执行。
因此,在我正在测试的代码中,如果我的 PhantomJS 代码中有这个:
在第二个函数中,result
应该是字符串“foo”。这就是我运行代码时发生的情况。但如果我通过 运行它lab -t 100
,null
我会得到“幻像标准输出:ReferenceError:找不到变量:__$$labCov”。
有没有办法告诉实验室,“嘿,我知道这一行看起来像你想确保运行的代码,但真的,不要担心这里的这个小功能,它不适合你。”?
或者,有没有一种方法可以访问__$$labCov
,以便我可以将其提供给沙盒功能?幻影让你这样做:
但这不起作用,因为我无法访问__$$labCov
...
javascript - 访问在 docker 容器内运行的 node.js Hapi 服务器
我使用 node.js hapi 服务器从 centOS 构建了一个 docker 容器。服务器运行良好,在容器内运行时,我在控制台中得到正确的输出。但是,我不知道该怎么做。
码头集装箱的输出
码头工人文件
node.js - nodejs hapi 单页
我有一个应用程序站点 (NodeJS),我想从 Express 迁移到 Hapi,我通常做的是提供静态文件并将其他所有内容路由到包含 angularjs 应用程序和 angular 路由配置的单个页面。
在 HapiJS 中,我不知道如何复制相同的代码(不使用 express.static 中间件),因为:
在上面的代码中,无论什么请求都会映射到我的单个页面('public/html/index.html'),但是如果我这样做,那么 js、css、jpg 和文件将被映射到相同的文件而不是脚本,样式和图像(对'/images/bg.png'的请求将下载单个页面而不是图像文件)。
我知道,如果我将路径 '/' 设置为我的单个页面,然后将 '{p*}' 设置为 '{directory: {path: '/public'}}',那么我将拥有我需要的行为,但是有一个问题,如果某个用户复制并粘贴一个特定的 url(比如说'/account/login')然后按回车,该路由将映射到 HapiJS 并且响应将是“未找到(404)”,角度路由永远无法回应。
有谁知道如何解决这个问题?
问题的关键部分是:
- 仅使用 HapiJS(不使用 express 或其他中间件)
- 不要路由每条角度路由(只需将其他所有尚未路由到单页的东西路由到 Angular 可以处理路由)
javascript - ECONNREFUSED hapi.js
我们已经使用 hapijs 一段时间了,突然开始遇到这个问题
我不确定为什么会收到此错误。我尝试了不同版本的节点,但没有成功。还有其他人有这个问题吗?
任何帮助/建议表示赞赏。
谢谢。
regex - 错误:模式必须是正则表达式
我需要接受手机号码作为 Web 服务的输入,但是在使用 Joi 框架进行验证时遇到了以下问题。
乔伊 说:
验证:
我检查了 freeformatter 上的正则表达式,它似乎对至少一些输入工作正常。我不明白为什么 joi 会抛出这个错误。