【问题标题】:Node.js cant log Class model data from Student modelNode.js 无法从学生模型记录类模型数据
【发布时间】:2018-01-05 21:02:30
【问题描述】:

我在这里遇到了问题。我目前正在使用 node.js 和 MongoDB 创建学校目录。我在 app.post 请求中,由于某种原因,我无法获取链接到学生的班级名称以登录控制台,但 createdClass.name 将打印...

这里是代码...

app.post("/students/:id", function(req, res){
   Student.findById(req.params.id, function(err, foundStudent){
       if(err){
           console.log(err);
       } else {
          Class.create(req.body.class, function(err, createdClass){
              if(err){
                  console.log(err);
              } else {
                  createdClass.student.id = foundStudent._id;
                  createdClass.student.name = foundStudent.name;
                  console.log(createdClass);
                  createdClass.save();

                  foundStudent.classes.push(createdClass);
                  console.log(foundStudent.classes[0].name);
                  foundStudent.save();
              }
          });
       }
   });
   res.redirect("/students/" + req.params.id);
});

还有,这是我的模型...

学生:

var mongoose = require("mongoose");

var studentSchema = new mongoose.Schema (
    {
        name: String,
        classes: [
                {
                    type: mongoose.Schema.Types.ObjectId,
                    ref: "Class"
                }
            ],
        grades: Array
    }
);

module.exports = mongoose.model("Student", studentSchema);

类:

var mongoose = require("mongoose");

var classSchema = new mongoose.Schema (
    {
        name: String,
        student: 
        {
            id: 
            {
                type: mongoose.Schema.Types.ObjectId,
                ref: "Student"
            },
            name: String
        }
    }
);

module.exports = mongoose.model("Class", classSchema);

提前感谢您,如果有什么我可以添加以使本文更易于阅读,请告诉我。

这是发出帖子请求的页面...

<div>
    <h1>Student Profile</h1>
    <h2>Name: <%=student.name%></h2>
    <div>
        <h3>Classes:
            <form action="/students/<%= student._id %>" method="POST">
                <%if(student.classes.length === 0){%>
                    <p>No classes linked to profile, please add class..</p>
                    <input type="text" name="class[name]" placeholder="Class name">
                <% } else { %>
                    <% student.classes.forEach(function(course){ %>
                        <li><%= course.name %></li>
                    <% }); %>
                <% } %>
            </form>
        </h3>
    </div>
</div>

【问题讨论】:

    标签: javascript node.js mongoose


    【解决方案1】:

    类是保留字,不能用于变量

    【讨论】:

    • 谢谢,我更新了这个但是还是不行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多