TypeError:无法读取null的属性“代码”

时间:2020-05-06 06:03:41

标签: node.js mongodb express mongoose

我正在mongo数据库中注册我的用户。我正在创建形式的数据实例并调用猫鼬的.save()方法。但是,我的应用程序崩溃了(尽管用户已完美地保存在数据库中):-

最初,我以为我没有在实例中保存“确认密码”,因此可能会产生错误,但是即使在注释了一部分代码问题后仍然存在。

我尚未在文件中创建任何名称为 code 的文件。

以下是我的错误

Error:-
events.js:298
      throw er; // Unhandled 'error' event

TypeError: Cannot read property 'code' of null

这是我的发帖请求:-

router.post("/signup", function(req,res){
let registered_user=new User(req.body);
registered_user.save(function(err, doc){
    if(err){
        console.log("Something went Wrong");
    }
    if(err.code===11000){
        console.log("User with same details already registed");
    }
});
res.redirect("/");
});

这是我的HTML表单:-

<form action="/signup" method="POST">
    <div class="form-group">
        <label><strong>Enrollment Number</strong>
            <br> 
        <input class="form-control" type="text" name="EnrollNumber" placeholder="Enrollment Number" required>
    </div>
    <div class="form-group">
        <label><strong>Email:-</strong>
            <br> 
        <input class="form-control" type="email" name="Email" placeholder="Email" required>
    </div>
    <div class="form-group">
        <label><strong>Name</strong>
            <br>
        <input class="form-control" type="text" name="Name" placeholder="Name" required>
    </div>
    <div class="form-group">
        <label><strong>Department</strong> 
        <select id="" name="Department" required>
            (...)
          </select>
    </div>
    <div class="form-group">
        <label><strong>Position</strong> 
        <select id="" name="Role" required>
            <option value="Student">Student </option>
            ...(Some more)
          </select>
    </div>
    <div class="form-group">
        <label><strong>Gender</strong> 
        <select id="" name="Gender" required>
            (...)
          </select>
    </div>
    <div class="form-group">
    <label><strong>password :</strong><br>
        <input name="password" id="password" type="password" onkeyup='check();'>
      </label>
      <br>
      <label><strong>Confirm Password:</strong>
        <br> 
        <input type="password" id="confirm_password" onkeyup='check();'> 
        <span id='message'></span>
      </label>
    </div>
    <div class="form-group">
        <button class="btn btn-lg btn-info btn-block">Submit!</button>
    </div>
</form>

和我的用户架构

var UserSchema=new mongoose.Schema({
Name: {
    type:String,
    required: true
},
Email: {
    type:String,
    required: true,
    unique: true
},
Role: {
    type:String,
    required: true
},
EnrollNumber: {
    type:Number,
    required: true,
    unique: true
},
password: {
    type:String,
    required: true
},
Department: {
    type:String,
    required: true
},
Gender: {
    type:String,
    required: true
}
});

1 个答案:

答案 0 :(得分:1)

这是因为您正在使用2条[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-cdi-same-version) @ module1 --- [WARNING] Dependency convergence error for jakarta.enterprise:jakarta.enterprise.cdi-api:2.0.2 paths to dependency are: [...] +-com.example:module1:0.0.1-SNAPSHOT +-org.jboss.weld.se:weld-se-core:3.1.4.Final +-jakarta.enterprise:jakarta.enterprise.cdi-api:2.0.2 and +-com.example:module1:0.0.1-SNAPSHOT +-com.example:module2:0.0.1-SNAPSHOT +-jakarta.enterprise:jakarta.enterprise.cdi-api:2.0.1 [WARNING] Dependency convergence error for org.junit.jupiter:junit-jupiter-api:5.6.2 paths to dependency are: [...] +-com.example:module1:0.0.1-SNAPSHOT +-org.junit.jupiter:junit-jupiter:5.6.2 +-org.junit.jupiter:junit-jupiter-engine:5.6.2 +-org.junit.jupiter:junit-jupiter-api:5.6.2 and +-com.example:module1:0.0.1-SNAPSHOT +-org.mockito:mockito-junit-jupiter:3.3.3 +-org.junit.jupiter:junit-jupiter-api:5.4.2 [WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message: Failed while enforcing releasability. See above detailed error message. 语句。

将对第一个if进行评估,然后对另一个if (err) {}进行评估,从而引发if (err.code) {}

您似乎正在尝试执行此操作

TypeError