2014-08-30 63 views
0

我已经听过很多关于hapi api的框架,所以我开始使用它。虽然文档非常扎实,但仍然无法解决我的问题:验证是不允许的 - hapi js

我想发送一些表单数据并希望在实际处理之前对其进行验证,所以我使用hapi的强大验证实用程序并获取跟随错误:

←[31m 
[1] validation is not allowed←[0m 
    at Object.exports.assert (E:\repository\simpleHapiApp\node_modules\hapi\node 
_modules\hoek\lib\index.js:425:11) 
    at Object.exports.assert (E:\repository\simpleHapiApp\node_modules\hapi\lib\ 
schema.js:15:10) 
    at new module.exports.internals.Route (E:\repository\simpleHapiApp\node_modu 
les\hapi\lib\route.js:46:12) 
    at E:\repository\simpleHapiApp\node_modules\hapi\lib\router.js:110:25 
    at Array.forEach (native) 
    at E:\repository\simpleHapiApp\node_modules\hapi\lib\router.js:107:17 
    at Array.forEach (native) 
    at internals.Router.add (E:\repository\simpleHapiApp\node_modules\hapi\lib\r 
outer.js:104:13) 
    at internals.Server._route (E:\repository\simpleHapiApp\node_modules\hapi\li 
b\server.js:471:18) 
    at internals.Server.route (E:\repository\simpleHapiApp\node_modules\hapi\lib 
\server.js:465:10) 

我的代码看起来像以下:

server.route({ 
    method: 'POST', 
    path: '/apis/login', 
    handler: empApi.login, 
    config:{ 
     validation:{ 
      payload: { 
       username: joi.string().min(3).max(20).required(), 
       password: joi.string().alphanum().required() 
      } 
     } 
    } 
}); 

请指出哪里是错误的。

回答

4

经过一个小时的调试,并在回顾我自己的问题后,我发现我犯的错误是多么的愚蠢:关键不是validation,而是validate

因此,一旦纠正,代码如下:

server.route({ 
    method: 'POST', 
    path: '/apis/login', 
    handler: empApi.login, 
    config:{ 
     validate:{ 
      headers: { 
       username: joi.string().min(3).max(20).required(), 
       password: joi.string().alphanum().required() 
      } 
     } 
    } 
});