【问题标题】:Schema Using joigoose and mongoose for validation in node jsSchema 使用 joigoose 和 mongoose 在节点 js 中进行验证
【发布时间】:2020-02-26 02:32:17
【问题描述】:

我正在使用 @hapi/joi 在 mongoose 模式中进行验证。我正在使用joigoose 在猫鼬模式中转换 joi 对象,如下所示:

import mongoose from 'mongoose';
import joi from '@hapi/joi';
const joigoose = require('joigoose')(mongoose);
let objectId = mongoose.Schema.Types.ObjectId;

let userInfo = joi.object().keys({
    userId: joi.string().required().alphanum().meta({ type: 'objectId' }),
    firstName: joi.string().required().min(4).max(20),
    lastName: joi.string(),
    birthDate: joi.date(),
    email: joi.string().email(),
    mobile: joi.number().max(10),
    isActive: joi.boolean()
})

let userInfoSchema = new mongoose.Schema(joigoose.convert(userInfo));
module.exports = mongoose.model('userInfoModel', userInfoSchema, 'userInfo');

这是抛出错误如下:

我无法弄清楚问题所在。

【问题讨论】:

    标签: node.js mongoose joi


    【解决方案1】:

    更新:Joigoose 已在 7.0.0 版本中修复此错误:https://github.com/yoitsro/joigoose/issues/36

    运行以下命令列出项目文件夹中包的所有依赖项

    npm list
    

    在树中查找 joigoose 及其依赖项:

    +-- joigoose@6.2.0
    | +-- @hapi/hoek@8.5.1 deduped
    | `-- @hapi/joi@16.1.8 deduped
    

    安装相同版本的@hapi/joi,方法是:

    npm install @hapi/joi@16.1.8
    

    很遗憾,到目前为止,joigoose 的最新版本与@hapi/joi 17.x 版本不兼容。

    链接:https://github.com/yoitsro/joigoose/issues

    【讨论】:

    • 非常感谢。现在它在更改 @hapi/joi 版本后工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2011-01-30
    • 2018-04-10
    相关资源
    最近更新 更多