我如何解決這個 Joi 問題(使用 express, [email protected],[email protected], ,mongoose)我正在嘗試使用 ref 作為鏈接兩個貓鼬模式
{
...
enroledcourses: [{
type: Schema.Types.ObjectId,
ref: "courses"
}]
}
joi 驗證
...
enroledcourses: Joi.array().items(Joi.ObjectId()).required()
課程集很好,我在 index.js 中匯入了它,如下所示
const Joi = require("joi")
Joi.objectId = require("joi-objectid")(Joi);
但我最終得到這個錯誤 在這里輸入圖片描述
AssertionError [ERR_ASSERTION]:您必須將 Joi 作為引數傳遞給 Object. (D:\Programing projects\2021\ikodeafrika\ikodeafrikabackend\index.js:2:39)
index.js:2:39 是上面的 joi.objectId 匯入加上當我將滑鼠懸停在 joi.objectId 匯入陳述句上時我得到了這個
型別“Root”上可能不存在屬性“objectId”。您的意思是 'object' 嗎?ts(2568) index.d.ts(1998, 9): 這里宣告了 'object'。任何
uj5u.com熱心網友回復:
問題是因為[email protected]與[email protected].
修復:
升級joi-objectid到v4.0.2
關于 Typescript 錯誤(型別 'Root' 上可能不存在屬性 'objectId'),您需要增加型別Joi以添加objectId屬性。這可以通過創建一個宣告檔案來完成:
// src/types/joi.d.ts
import { Schema } from "joi";
declare module "joi" {
interface Root {
objectId(): Schema;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310813.html
標籤:javascript 数组 猫鼬模式 乔伊 对象标识
