【发布时间】:2019-05-13 14:36:42
【问题描述】:
我有这样的基本 userSchema:
const userSchema = Joi.object().keys({
firstName: Joi.string(),
lastName: Joi.string(),
email: Joi.string().email(),
username: username,
password: password,
devices: Joi.array().items(userDevicesSchema),
billing: userBillingSchema,
clients: Joi.array().items(userClientSchema),
cart: Joi.array().items(userCartSchema),
orders: Joi.array().items(userOrderScherma),
isAdmin: Joi.boolean(),
isActive: Joi.boolean(),
lang: Joi.string().valid(['cs', 'de', 'en', 'es', 'fr', 'ja']),
credit: Joi.number(),
timeZone: Joi.string().timeZone(),
customization: userCustomizationSchema,
level: Joi.string().valid(['casual', 'scout', 'explorer', 'integrator']),
microservicesAccess: Joi.array().items(Joi.string())
}).options({ abortEarly: false, stripUnknown: true });
现在我想为 Signup API 验证创建一个 userSignupSchema。我需要设置一些必填字段。我试过这个:
const userSignupSchema = userSchema
.requiredKeys('firstName', 'lastName', 'email', 'username', 'password', 'lang', 'level', 'timeZone', 'level')
.forbiddenKeys('devices', 'cart', 'orders', 'isAdmin', 'credit', 'microservicesAccess' );
但我收到错误:“未知键级别”。禁止键完美地工作。有人有使用 requiredKeys 的工作示例吗?我找不到任何...
【问题讨论】:
-
你试过没有数组
[]围绕键吗? -
是的,我试过了...我不知道我在这里做错了什么,因为它确实适用于禁止键...
标签: node.js validation joi