¿Cómo resuelvo este problema de Joi? Estoy tratando de vincular dos esquemas de mangosta usando ref como
{ ... enroledcourses: [{ type: Schema.Types.ObjectId, ref: "courses" }] }validacion joi
... enroledcourses: Joi.array().items(Joi.ObjectId()).required()la colección de cursos está bien, la he importado en index.js como se muestra a continuación
const Joi = require("joi") Joi.objectId = require("joi-objectid")(Joi);pero termino recibiendo este error ingrese la descripción de la imagen aquí
AssertionError [ERR_ASSERTION]: debe pasar Joi como argumento en joiObjectId (D:\Programing projects\2021\ikodeafrika\ikodeafrikabackend\node_modules\joi-objectid\index.js:6:3) en Object. (D:\Proyectos de programación\2021\ikodeafrika\ikodeafrikabackend\index.js:2:39)
index.js: 2:39 siendo la importación joi.objectId anterior y obtengo esto cuando paso el mouse sobre la declaración de importación joi.objectId
La propiedad 'objectId' puede no existir en el tipo 'Root'. ¿Quiso decir 'objeto'? ts(2568) index.d.ts(1998, 9): 'objeto' se declara aquí. ningún
El problema es que joi-objectid@2.0.0 no es compatible con joi@17.4.2 .
Arreglar:
Actualice joi-objectid a v4.0.2
Acerca del error de mecanografiado (la propiedad 'objectId' puede no existir en el tipo 'Root'), debe aumentar el tipo de Joi para agregar la propiedad objectId . Esto se puede hacer creando un archivo de declaración:
// src/types/joi.d.ts import { Schema } from "joi"; declare module "joi" { interface Root { objectId(): Schema; } }