在 node js 中使用 joigoose 和 mongoose 进行验证的模式
Schema Using joigoose and mongoose for validation in node js
我正在使用 @hapi/joi
在猫鼬模式中进行验证。我正在使用 joigoose
转换 mongoose 模式中的 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');
这是抛出错误如下:
我无法弄清楚问题出在哪里。
更新: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 版本不兼容。
我正在使用 @hapi/joi
在猫鼬模式中进行验证。我正在使用 joigoose
转换 mongoose 模式中的 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');
这是抛出错误如下:
我无法弄清楚问题出在哪里。
更新: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 版本不兼容。