【问题标题】:Joi get schema from another modelJoi 从另一个模型中获取模式
【发布时间】:2017-07-06 02:13:33
【问题描述】:

如何使用 Joi 从另一个模型导入架构?

主类:

Lol = _dynogels2.default.define('Lol', {
                hashKey: 'userId',
                timestamps: true,
                tableName: 'Lol',
                schema: _joi2.default.object({
                    id: _dynogels2.default.types.uuid(),
                    userId: _joi2.default.string().trim().required(),
                    revisionDate: _joi2.default.number().required(),
                    verify: Verify.schema,
                    createdAt: _joi2.default.date().default(Date.now, 'time of creation').required(),
                    updatedAt: _joi2.default.date().min(_joi2.default.ref('createdAt')).required()
                }).unknown(true).options({ stripUnknown: true })
            });

子类:

Verify = _dynogels2.default.define('Verify', {
                hashKey: 'username',
                timestamps: true,
                tableName: 'Users',
                schema: _joi2.default.object({
                    id: _dynogels2.default.types.uuid(),
                    isVerified: _joi2.default.boolean(),
                    createdAt: _joi2.default.date().default(Date.now, 'time of creation').required(),
                    updatedAt: _joi2.default.date().min(_joi2.default.ref('createdAt')).required()
                }).unknown(true).options({ stripUnknown: true })
            });

我收到此错误:Invalid schema content

编辑:

如果我将架构用作 var 并将其导入,则可以:

var schema = joi2.default.object({
                        id: _dynogels2.default.types.uuid(),
                        isVerified: _joi2.default.boolean(),
                        createdAt: _joi2.default.date().default(Date.now, 'time of creation').required(),

【问题讨论】:

  • 附加到 _joi2 的默认对象是什么?
  • @simon-p-r,它是一个简单的 joi 对象。
  • 看起来不像,我会在构造模式时使用普通对象。您正在改变一些从您的示例中看不到的值。

标签: node.js hapijs joi


【解决方案1】:

我相信Invalid schema content 指的是_dynogels2.default.types.uuid()。那是引用joi.string().uuid() 的编译模式吗?如果不是,那么Joi 不知道如何将其转换为它的规则集。

【讨论】:

  • 这个模式工作得很好。我使用它没有导入和工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多