我正在尝试验证查询字符串参数'hccid',如下所示。似乎验证对我不起作用。有人能看到我错过的东西吗?
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}`)
});
因此,使用该代码,当我使用全新的queryparam abc
调用服务时,我应该得到架构验证异常,就像我在下面显示的那样
http://localhost:3000/hello?abc=1
但没有错误。我得到了回复{"hello":"world"}
我还尝试一起删除queryparam http://localhost:3000/hello
我还有{"hello":"world"}
很明显,验证无效。我的代码中缺少什么?任何帮助将不胜感激。
答案 0 :(得分:2)
这种架构结构解决了我的问题。如果有人想要检查它们是否遇到类似的问题,以防万一。
const querySchema = {
schema: {
querystring: {
type: 'object',
properties: {
hccid: {
type: 'string'
}
},
required: ['hccid']
}
}
}