我有以下问题,即当元素等于模式时,元素是不确定的。 Course.js中的元素课程未定义。
User.js文件:
const mongoose = require("mongoose");
let Course = require(__dirname + "/Course.js");
let Tutor = require(__dirname + "/Tutor.js");
let Schema = mongoose.Schema;
console.log(Course.courseSchema)
var userSchema = new Schema ({
name: String,
email: String,
username: String,
password: String,
courses: [Course.courseSchema],
tutors: [Tutor.tutorSchema],
isTutor: Boolean,
subscribed: Boolean,
googleId: String,
facebookId: String
});
let User = mongoose.model("User", userSchema);
module.exports = {
userSchema: userSchema,
User: User
}
Course.js文件:
const mongoose = require("mongoose");
let Schema = mongoose.Schema;
let Tutor = require(__dirname + "/Tutor.js");
let Category = require(__dirname + "/Category.js");
let Module = require(__dirname + "/Module.js");
let User = require(__dirname + "/User.js" );
let CourseReview = require(__dirname + "/CourseReview.js");
var courseSchema = new Schema ({
title: String,
categories: [Category.categorySchema],
tags: [String],
shortDescription: String,
students: [User.userSchema],
language: [String],
tutor: [Tutor.tutorSchema],
requirement: String,
description: String,
module: [Module.moduleSchema],
reviews: [CourseReview.courseReviewSchema]
});
let Course = mongoose.model("Course", courseSchema);
module.exports = {
courseSchema: courseSchema,
Course: Course
}
dbs文件结构:
dbs
├── Course.js
├── User.js
我正在返回“ TypeError:架构数组路径courses
的无效值,值为” undefined”。我一直在尝试修复目录,但是无法识别该架构,我讨厌阅读以下子文档文档:允许您在另一个架构中调用该架构。有人知道如何解决此问题吗?
答案 0 :(得分:1)
您在User
和Courses
模块之间有了循环依赖。如此简单-more on this particular issue.就是为什么在加载Course.courseSchema
时未定义User.js
的原因。
此外,您的架构没有实际意义。您可能希望通过某种标识符来引用这些用户,课程,导师,从而建立联系。您不希望user.courses
包含Course
,而后者又包含user
的实例,依此类推。
有关如何在猫鼬中建立关系的描述,请参见this answer。