Articles of hapijs

是否有可能在hapi中定义一个全局的基本path

我希望每个hapi路由path都以前缀( /api/1 )开始,而不必将其添加到每个路由。 这可能吗? 下面的路线应该是可用的path/api/1/pets而不是/pets const Hapi = require('hapi'); const server = new Hapi.Server(); server.route({ method: 'GET', path: '/pets' })

Hapi js使用其他请求数据redirect到另一个路由

在hapi.js我可以redirect请求从1路线到另一个使用 response.redirect('/home') 我如何使用redirect发送一些数据? 我试着把它设置在标题中 response.redirect('/home').header('x-token', token) 但是这个数据到达另一个路由时会丢失。

在hapijs路由呼叫时应该什么时候返回

我有两个不同的例子,一个来自makemehapi(某种互动课程),另一个来自官方的hapi.js网站。 第一个看起来像这样 – var Hapi = require('hapi'); var server = new Hapi.Server(); server.connection({ host: 'localhost', port: Number(process.argv[2] || 8080) }); server.route({ method: 'GET', path: '/', handler: function (request, reply) { reply('Hello hapi'); } }); server.start(function () {}); 只要看看被调用的server.route方法即可。 处理程序有一个匿名函数,调用reply(…); 并不返回。 现在hapijs网站提到以下呼吁: server.route({ method: 'GET', path:'/', handler: function (request, reply) { return reply('hello world'); } }); […]

从另一条路线呼叫hapi路线

我对HapiJS很新颖。 我正在build立一个服务,我有两个路由/ route1和/ route2都使用插件体系结构。 我已经注册为我的清单文件上的插件。 我想从/ route2调用/ route1,因此/ route2取决于来自/ route1的有效负载。 我一直在寻找把/ route2的逻辑放在预处理程序的/ route1上,但我想分开保存它们。 不知道如何调用从另一个注册插件的事情是这两个插件(路线)正在做networking请求。 谢谢阅读。 谢谢。

Hapijs入门良好的控制台错误记者必须指定要过滤的事件

我刚开始学习Hapijs下面的例子入门教程: var Hapi = require('hapi'); var Good = require('good'); var server = new Hapi.Server(); server.connection({ port: 3000 }); server.route({ method: 'GET', path: '/', handler: function (request, reply) { reply('Hello, world!'); } }); server.route({ method: 'GET', path: '/{name}', handler: function (request, reply) { reply('Hello, ' + encodeURIComponent(request.params.name) + '!'); } }); server.register({ register: Good, options: { […]

如何在注销时销毁JWT令牌?

我正在使用jwt插件和策略在hapijs。 我可以在login用户时创buildjwt token,并通过“jwt”策略使用相同的标记validation其他API。 我将“request.state.USER_SESSION”中的标记设置为cookie,其中USER_SESSION是标记名称。 另外我不保存这些令牌在数据库中。 但是如何在注销的时候销毁jwt令牌。 请build议一个方法。

如何避免在Joivalidation请求时Hapi.js发送400错误

Hapi.jsvalidation与Joi + failAction问题。 情况 我们希望使用Hapi构build一个“ 传统的 ” 仅 服务器端渲染的应用程序。 我试图了解如何避免在Joivalidation失败时将“ 原始 ” 400错误返回给客户端: 我们想拦截这个“ 不允许为空的电子邮件 ” validation错误,并将其显示在客户端的html模板中,而不是简单地返回400错误。 @AdriVanHoudtbuild议我们应该: “看看http://hapijs.com/api#route-options下的failAction” 所以我们添加了failAction: 'log'到/registerpath处理器: { method: '*', path: '/register', config: { validate: { payload : register_fields, failAction: 'log' } }, handler: register_handler } 请参阅: server.js中的代码 register_handler是: function register_handler(request, reply, source, error) { console.log(request.payload); console.log(' – – – – […]

有没有办法查看Hapi服务器中的所有路由

我们正在研究一个node.js Hapi服务器,该服务器从MongoDB数据库中提取路由列表,并设置所需的服务路由。 因此,由于数据库中存在重复的路由条目,服务器可能会失败。 我试过看,但没有find一种方法来检查哈皮重复路线。 是否有可能获得Hapi服务器当前正在服务的路由列表? 在尝试构build来自MongoDB的路由时,是否有错误检查可以比标准的try / catch块更漂亮? 下面是设置路由的代码; 请在代码中查看我的意见,了解我需要处理错误的位置。 MySchema.find({}, function (err, stubs) { if (err) { console.log('error while loading'); return; } for (var i = 0; i < stubs.length; i++) { var bodyMessage = stubs[i].body; // This is where we can fail, if only I could make a // check for the route […]

如何使用PassportJS与HapiJS

我很难决定使用PassportJS和HapiJS的最佳方式。 有没有人做到这一点? 我不是在谈论Travelogue,因为我有点不喜欢它的工作方式。 也许我没有正确使用它。

使用GoodloggingHapi.js中的请求和响应负载

我正在使用Hapi.js为我的移动应用程序实现RESTful API。 我已经整合好logging请求,错误和其他事件。 它对我来说效果很好。 但是,如何logging请求和响应负载(JSON对象)并不清楚。 我将不胜感激任何帮助。