141得票9回答
如何在注销时销毁JWT令牌?

我正在使用hapijs中的jwt插件和策略。 在登录用户时,我能够创建jwt令牌,并通过 'jwt'策略使用同一令牌验证其他API。 我将令牌作为cookie设置在request.state.USER_SESSION中,其中USER_SESSION是令牌名称。 另外,我不会将这些令牌保存在...

138得票6回答
Express和hapi相比,它们有什么区别?

就网页应用的设计和开发而言,Express 和 Hapi 有什么区别?基本示例看起来相似,但我想了解整个应用程序结构中的关键差异。 例如,据我所学,Hapi 使用不同的路由机制,它不考虑注册顺序,可以更快地查找,但与 Express 相比有一定限制。是否还有其他重要的区别 ? 还有一篇关于...

112得票7回答
Joi数组验证

尝试验证数组在一种情况下具有零个或多个字符串,而在另一种情况下具有零个或多个对象,但是在 Joi 文档中遇到了困难 :(validate: { headers: Joi.object({ 'content-type': "application/vnd...

60得票7回答
当使用Hapi时,如何将路由存储在单独的文件中?

所有Hapi示例(以及类似的Express示例)都显示路由在起始文件中定义:var Hapi = require('hapi'); var server = new Hapi.Server(); server.connection({ port: 8000 }); server.route...

59得票2回答
如何在Joi中允许任何其他按键

我有一个简单的需求。我尝试在互联网和文档中搜索,但都没有成功。 这是我想要实现的: 我有一个模式:const schema = Joi.object().keys({ a: Joi.string().required(), b: Joi.string().required() });...

48得票4回答
Joi验证只返回一个错误消息。

我有一个包含姓名、电子邮件和文本区域三个字段的表单。我正在使用Joi 4.7.0版本,以及hapijs。我使用下面的对象验证输入。我从ajax调用中接收数据对象。当我填写所有三个字段的错误信息时,我只收到与第一个错误字段相关的消息。就像这样:"{"statusCode":400,"error"...

39得票2回答
Joi验证多个条件

我有以下模式:var testSchema = Joi.object().keys({ a: Joi.string(), b: Joi.string(), c: Joi.string().when('a', {'is': 'avalue', then: Joi.st...

39得票2回答
多部分HTTP响应

目标是让一个 Node.js / hapi API 服务器用两个东西响应浏览器的 AJAX 请求: 媒体文件(例如图片) 带有文件元数据的 JSON 对象 这两个东西之所以是分开的,仅因为二进制数据无法轻松地存储在 JSON 中。否则,这将是一个单一的资源。尽管如此,最好将它们发送到单...

32得票1回答
Joi对象验证:如何验证具有未知键名称的值?

我有一个对象,其中包含用户可能创建的我无法预知的键名。但是我确实知道它们(键)将要存储哪些值,并且它们(值)将是 ISO 字符串。我该如何验证这些值?另外,我如何验证未知对象的键,即: key: Joi.string().min(2).max(25) 我已经尝试过的内容基于 Joi API 文...

31得票6回答
使用Joi,要求其中一个字段非空。

如果我有两个字段,只想在至少一个字段是非空字符串时进行验证,但当两个字段都是空字符串时则不通过。类似这样的方式无法进行验证var schema = Joi.object().keys({ a: Joi.string(), b: Joi.string() }).or('a', '...