属性'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!';
更多推荐
TypeError:无法读取null的属性'code'
发布评论