如何在路由处理程序中使用`pre` – hapi.js
我必须在路线中使用pre来调用方法。 我正在使用hapi-request 。 我试图在路由声明中使用pre,但是出现错误。 我错过了什么?
我原来的路线:
server.route({ method: 'POST', path: '/searchUser', config: User.searchUser })
使用Pre
server.route({ method: 'POST', path: '/searchUser', pre: validateUser, config: User.searchUser })
错误
Error: Invalid route options (/searchUser) { "method": "POST", "path": "/searchUser", "config": {} } ←[31m [1] "pre" is not allowed←[0m
pre
应该在config对象内部使用。
从Hapi的路线先决条件文档:
server.route({ method: 'GET', path: '/', config: { pre: [ [ // m1 and m2 executed in parallel { method: pre1, assign: 'm1' }, { method: pre2, assign: 'm2' } ], { method: pre3, assign: 'm3' }, ], handler: function (request, reply) { return reply(request.pre.m3 + '\n'); } } });
更新路线:
server.route({ method: 'POST', path: '/searchUser', config: { handler: User.searchUser, pre: [{ method: validate /* function to be called */ }] } );
路由configuration对象的属性pre不是一个函数( 在这里 ),它是一个对象route-prerequisites的数组