我有一个包括几个子模式的用户模式。我有两个相似的子模式,其中一个是可以识别的,但另一个是一直未定义的。我的用户架构如下:
var UserSchema = new Schema({
company: String,
resetPasswordToken: String,
resetPasswordExpires: Date,
isAdmin: {type: Boolean, default: false},
projects: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Project",
}
],
trackers: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Tracker",
}
],
});
在上面的模式中,我有一个项目在post路线中工作得很好。表单已正确发布、保存和显示,但无法发布跟踪器的相同路由,并给出“跟踪器未定义”错误:
项目后路由:
app.post("/myprojects", function(req,res){
User.findById(req.user._id, function(err, user){
if(err){
console.log(err);
}else{
var pname = req.body.pname;
var pnumber = req.body.pnumber;
var newProject = {
pname:pname,
pnumber:pnumber,
};
Project.create(newProject, function(err, project){
if(err){
console.log(err);
}else{
user.projects.push(project);
user.save();
res.redirect("/myprojects");
}
});
}
});
});
以下是追踪者的帖子:
app.post("/tracker", function(req,res){
User.findById(req.user._id, function(err, user){
if(err){
console.log(err);
}else{
var tname = req.body.tname;
var tnumber = req.body.tnumber;
var newTracker = {
tname:tname,
tnumber:tnumber,
};
Tracker.create(newTracker, function(err, tracker){
if(err){
console.log(err);
}else{
user.trackers.push(tracker);
user.save();
res.redirect("/tracker");
}
});
}
});
});
请注意,项目模式和跟踪器模式都保存在一个模型文件夹中,并且在app.js中是必需的
它必须为您提供未定义
,因为跟踪器
未保存在用户
对象的数据库中。您可以使用以下方法修复该问题。
user.trackers = user.trackers || [];
user.trackers.push(tracker);
问题内容: 我将使用ReadFile: 我该如何解决? 问题答案: 使用包名称限定它:
问题内容: 我已经通过npm install安装了节点模块,然后尝试在命令提示符下执行gulp sass-watch。之后,我得到以下回应。 在gulp sass-watch之前尝试过这个 问题答案: 我遇到了同样的错误。我怀疑您正在使用节点12和gulp3。该组合不起作用:https : //github.com/gulpjs/gulp/issues/2324 从1月开始的以前的解决方法也不起作
我已经通过npm install安装了节点模块,然后我尝试在命令提示符下执行gulp sass-watch。之后我得到了下面的回应。 我以前也试过
当我运行此代码时,它返回一个错误,说明未定义err 这是我的代码 下面是我对MongoDB模式的定义: 来人,请帮我修好这个谢谢!
代码: 错误: 我该怎么解决这个问题?