最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

TypeError:无法读取null的属性'code'

网站源码admin17浏览0评论

TypeError:无法读取null的属性'code'

TypeError:无法读取null的属性'code'

我正在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
}
});
回答如下:

这是因为您正在使用2条if语句。

首先评估if (err) {},然后评估另一个if (err.code) {},从而引发TypeError

看来您要这样做是

if (err) {
    if (err.code === 11000) {
        console.log('User was already registered');
    }
}
return 'User saved!';
发布评论

评论列表(0)

  1. 暂无评论