【问题标题】:Mongoose : Error referencing sub schemaMongoose:引用子架构时出错
【发布时间】:2017-05-30 21:23:49
【问题描述】:

我的用户模型

'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
}

我在 'registeredUsers' 字段中遇到了臭名昭著的“throw new TypeError('Invalid value for schema Array path”错误。我已经关注了多个帖子,遇到了同样的问题,但似乎找不到我在哪里出错了。据我所知,我已经适当地导出了架构。欢迎任何帮助/提示

【问题讨论】:

  • 该错误表明UserSchemanullundefined,但从您显示的内容来看,我不知道如何。事实上,我无法重现该问题。
  • @robertklep 是的,这很奇怪。如果我将 UserSchema 包含在同一个文件中,则定义没有问题,因此导出时一定有问题...
  • 您能在创建EventSchema 之前添加console.log(UserSchema) 吗?甚至在导入之后。
  • 我已经这样做了,结果得到了undefined。我也刚刚尝试从同一个文件中导出一个简单的文字并得到undefined
  • 在这种情况下,我会怀疑 models/user.js 文件。如果它是正确的文件,它可能会对 module.exportsexports 做一些奇怪的事情。

标签: node.js mongodb mongoose models mongoose-schema


【解决方案1】:

我最终将 Schema 声明移到了一个单独的文件中,这似乎可以解决问题。怀疑这一定是VSCode对users.js文件的一些文件权限问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2021-06-28
    • 2015-04-21
    • 2016-10-27
    • 2022-06-11
    • 2022-01-23
    • 2018-05-12
    相关资源
    最近更新 更多