首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json-schema中的映射值

json-schema中的映射值
EN

Stack Overflow用户
提问于 2022-01-25 10:48:15
回答 1查看 229关注 0票数 0

所以JSON模式被定义为这里,我特别使用Fastify团队的fluent-json模式实现。

我在一个正在移植到Fastify的Express应用程序中使用乔依进行验证。

对于复选框和选择无线电输入,我使用了大量的验证。我想知道如何将这两个布尔值赋给任意的字符串值。

代码语言:javascript
复制
// So this is possible in Joi but not in `fluent-json-schema`
S.boolean().truthy('on').falsy('off').default(false)

不仅对布尔人来说,有可能映射值是很好的,因为这在前面和后面的体系结构中非常方便。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-25 16:49:17

我成功地使用preValidation回调映射了值。

代码语言:javascript
复制
function prevalidation_1(request, reply, done) {
    request.body = Object.fromEntries(
        Object.keys(request.body).map((key) => {
            if(key === 'exact') {
                const isTrue = request.body[key] == 'on' ? true : false
                return [key, isTrue]
            } else {
                return [key, request.body[key]]
            }
        })
    )
    done()
}
代码语言:javascript
复制
// Example secured route
fastify.route({
    method: 'POST',
    url: '/upload',
    preHandler: fastify.auth([
        fastify.verifyJWT,
    ]),
    preValidation: prevalidation_1,
    handler: (req, reply) => {
        req.log.info('Upload route')
        const { body } = req
        reply.send({ hello: body.exact })
    }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70847342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档