Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模式';未为架构中的模型注册,但未为来自同一源的其他模型注册_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 模式';未为架构中的模型注册,但未为来自同一源的其他模型注册

Javascript 模式';未为架构中的模型注册,但未为来自同一源的其他模型注册,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我试图用模式中的信息填充node express路由,但我一直收到这个错误。我无法理解的是,我在同一个确切的模式中引用了三个不同的字段,出于某种原因,我只在其中一个字段中得到了这个错误 这是我的路由函数,在这里我得到“MissingSchemaError:Schema尚未为模型“completed_by_user”注册” 这是票证模式本身: const Transaction = require ("./transaction"); User = require (".

我试图用模式中的信息填充node express路由,但我一直收到这个错误。我无法理解的是,我在同一个确切的模式中引用了三个不同的字段,出于某种原因,我只在其中一个字段中得到了这个错误

这是我的路由函数,在这里我得到“MissingSchemaError:Schema尚未为模型“completed_by_user”注册”

这是票证模式本身:

const Transaction = require ("./transaction");
User              = require ("./user");
Ticket            = require ("./ticket");
Job               = require ("./job");
Client            = require ("./client");

// =======================Ticket Schema

var ticketSchema = new mongoose.Schema({
    ticket_name: String,
    description: String,
    created_by: [{type: mongoose.Schema.Types.ObjectID, ref: "User"}],
    assigned_user: [{type: mongoose.Schema.Types.ObjectID, ref: "User"}],
    completed_by_user: [{type: mongoose.Schema.Types.ObjectID, ref: "User"}],
    due_date: {type: Date},
    completed_date: {type: Date},
    completed_description: String,
    date_added: {type: Date, default: Date.now}
});

module.exports = mongoose.model("Ticket", ticketSchema);
对于“created_by”或“assigned_user”,我没有得到此错误,但是对于“completed_by_user”,我得到了此错误。我不理解为什么会出现此错误,因为它们都填充在同一架构中。这不是我遇到的这类问题的唯一一次,但我相信也是出于同样的原因。我甚至尝试更改我需要的模式的顺序,但这也没有帮助。我有什么明显的遗漏吗?谢谢

.populate(["created_by", "assigned_user", "completed_by_user"])
请尝试此操作,因为.populate函数只接受一个参数,将其放入数组中需要多个参数


尝试此操作,因为.populate函数通过将其放入数组中只接受一个参数,它需要多个

,这不是填充多个字段的正确语法。参考以下内容,您可以使用
.populate(“创建人”).populate(“分配的用户”).populate(“完成的用户”)
非常感谢您,我想不起我在哪里学过填充多个字段,但显然我学过的是错误的。谢谢。这不是填充多个字段的正确语法。参考以下内容,您可以使用
.populate(“创建人”).populate(“分配的用户”).populate(“完成的用户”)
非常感谢您,我想不起我在哪里学过填充多个字段,但显然我学过的是错误的。非常感谢。
.populate(["created_by", "assigned_user", "completed_by_user"])