Node.js Mongoose:引用子架构时出错
我的用户模型Node.js Mongoose:引用子架构时出错,node.js,mongodb,mongoose,models,mongoose-schema,Node.js,Mongodb,Mongoose,Models,Mongoose Schema,我的用户模型 'use strict'; const mongoose = require("mongoose"); const Schema = mongoose.Schema; var UserSchema = new mongoose.Schema({ id: String, username: String, firstName: String, lastName: String, initials: String, password
'use strict';
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
var UserSchema = new mongoose.Schema({
id: String,
username: String,
firstName: String,
lastName: String,
initials: String,
password: String,
age: Number,
dateJoined: Date,
contactNo: String,
email: String,
about: String,
groupId: Number,
adminMode: Boolean,
simpulPoints: Number,
})
//Define model for user
const User = {
UserModel: mongoose.model("user", UserSchema),
}
module.exports = {
UserSchema : UserSchema,
User : User
}
我的事件模型
'use strict';
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
var UserSchema = require("../models/user").UserSchema
var EventSchema = new mongoose.Schema();
EventSchema.add({
id: String,
title: String,
description: String,
organizerId: String, //Simpul admin user responsible for event
startDate: Date, //MM-DD-YYYY HH:MM:SS:sssZ
endDate: Date,
group: String,
locaction: String,
googleMapsLink: String,
hasPassed: Boolean,
attendees: Number,
registeredUsers: [UserSchema],
groupId: Number,
adminMode: Boolean,
simpulAward: Number,
});
//Define model for evnt
var Event = {
EventModel : mongoose.model("event", EventSchema),
}
module.exports = {
Event : Event,
EventSchema : EventSchema
}
我得到了臭名昭著的“throw new TypeError('架构数组路径的值无效'“registeredUsers”字段出错。我跟踪了多篇文章,发现了同一个问题,似乎找不到哪里出了问题。据我所知,我已适当地导出了架构。欢迎提供任何帮助/提示。我最终将架构声明移到了一个单独的文件中,它似乎起到了作用。怀疑这一定是真的VSCode与users.js文件有一些文件权限问题错误表明
UserSchema
为null
或未定义
,但从您显示的内容来看,我不知道如何处理。事实上,我无法重现该问题。@robertklep是的,这很奇怪。如果我将UserSchema包含在同一文件中,则定义有效没问题,因此导出过程中一定出了问题……您可以添加console.log(UserSchema)吗
就在创建EventSchema
之前,或者甚至在导入它之后。我这样做了,结果得到了未定义的。我还尝试了从同一个文件导出一个简单的文本,也得到了未定义的
。在这种情况下,我会怀疑models/user.js
文件。如果它是正确的文件,我会怀疑它t可能对模块.exports
或exports
执行了一些奇怪的操作。