0

私はhapi apiフレームワークについてよく聞いていたので、それから始めました。ドキュメントは非常にしっかりしていますが、それでも問題を解決できません:

フォームデータを送信しようとしていて、実際の処理の前に検証したいので、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

1 に答える 1

6

1 時間のデバッグの後、自分の質問を確認した直後に、私が犯した間違いがいかにばかげているかがわかりました。キーは ではなく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()
            }
        }
    }
});
于 2014-08-30T20:19:43.603 に答える