2017-12-23 11 views
0

以下に示すように、クエリ文字列パラメータ 'hccid'を検証しようとしています。バリデーションが私のために働いていないようです。私は何かが見当たりませんか?私はfastifyとajvスキーマの検証

http://localhost:3000/hello?abc=1 

の下に示したが、エラーがなかっただけのよう総新しいqueryparam abcでサービスを呼び出すときに

const fastify = require('fastify')({ 
    ajv: { 
     removeAdditional: true, 
     useDefaults:  true, 
     coerceTypes:  true 
    } 
}); 


const schema = { 
    querystring: { 
     hccid: { type: 'string' } 
    } 
}; 

// Declare a route 
fastify.get('/hello', {schema}, function (request, reply) { 
    const hccid = request.query.hccid; 
    reply.send({ hello: 'world' }) 
}); 

// Run the server! 
fastify.listen(3000, function (err) { 
if (err) throw err 
    console.log(`server listening on ${fastify.server.address().port}`) 
}); 

だからコードで、私は、スキーマ検証の例外を取得する必要があります。私はまた、すべて一緒http://localhost:3000/hello

queryparamを削除しようとしたバック応答{"hello":"world"}

を持って、私はまだそれほど明らか検証が動作していない

{"hello":"world"}を得ました。私のコードには何がありませんか?どんな助けもありがとう。

+1

スキーマが正しくないため、JSONスキーマのドキュメントをお読みください。 – esp

+0

ありがとうございます。あなたの時間を探して+1してください。私はスキーマを修正して、今すぐ動作します。私は以下の修正されたスキーマを掲載しました。 – JBone

答えて

0

このスキーマ構造は私の問題を解決しました。ちょうど誰かが同様の問題に遭遇した場合にそれをチェックアウトしたい場合。

const querySchema = { 
    schema: { 
     querystring: { 
     type: 'object', 
      properties: { 
      hccid: { 
       type: 'string' 
      } 
     }, 
     required: ['hccid'] 
    } 
    } 
} 
関連する問題