【发布时间】:2025-12-13 14:40:01
【问题描述】:
当我尝试访问 /course/new 时,我收到错误 [ReferenceError: next is not defined]。
如何以及在哪里为我的故障功能定义下一步?
如果我只是添加一个参数next就像我在早期模型中所做的那样,我只会得到更多错误。
课程控制器:
module.exports = {
'new':function(req, res, err){
Student.findOne(req.param('takes'), function foundStudent (err, student){
if (err) return next(err);
if (!student) return next();
res.view({
student: student
});
});
},
create: function(req,res,next){
Course.create(req.params.all(), function courseCreated (err, course){
if(err) next(err);
res.json(course)
});
}
};
课程模式:
module.exports = {
attributes: {
code:{
type: "string"
},
name:{
type:"string"
},
takes:{
model: 'student',
required: true
}
}
};
/course/new.ejs:
<form action="/course/create" method="post">
<h2>Create a new course for <%= student.name %></h2>
<input type="hidden" name="takes" value="<%= student.id%>"/>
<input type="text" placeholder="Course Code" name="code"><br/>
<input type="text" placeholder="Name" name="student"><br/>
<input type="submit" value="Add course"/>
</form>
学生模式:
//A student can have take many courses
module.exports = {
attributes: {
name:{
type: "string",
required: true
},
username:{
type:"string"
},
courses: {
collection: 'course',
via: 'takes'
}
}
};
【问题讨论】:
-
@RajAdroit。我删除了 if 语句来检查错误并返回下一个。但这没有帮助。然后我又遇到了其他错误