Node.js 我的模式没有';t在插入数据时按预期运行
这是我的模式代码Node.js 我的模式没有';t在插入数据时按预期运行,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,这是我的模式代码 var Schema = mongoose.Schema; var UserSchema = new mongoose.Schema({ username: { type: String, required: true, unique: true }, phone:{ type: String, required: true }, pas
var Schema = mongoose.Schema;
var UserSchema = new mongoose.Schema({
username: {
type: String,
required: true,
unique: true
},
phone:{
type: String,
required: true
},
password: {
type: String,
required: true
},
createdAt: {type: Date, default: Date.now}
});
我正在插入数据,如下所示(在另一个文件中)
这里的问题是,每当我注册新帐户时,即使用户名已经存在于我的数据库中,它也会被成功添加
我将属性设置为unique:true
,但出于某种原因,它似乎不起作用
我做错了什么?当模型被称为
注册时,为什么您的模式被称为UserSchema
?@robertklep抱歉,我忘了提到第二部分在另一个文件中,现在将更新问题您如何创建模型?您是否使用MongoDB shell检查了用户名
属性是否有唯一索引?@robertklep是的,我检查了它正在工作的功能,当我从postman获得数据时,我可以看到成功存储的用户数据,当您使用MongoDB shell查询数据库时,有多个文档具有相同的用户名?
router.route('/register')
.post(function(req, res) {
var registeration = new Registeration({
username: req.body.username,
phone: req.body.phone,
password: req.body.password
});
registeration.save(function(err) {
if (err){
return res.json({ success: false, message: 'That username already exists.'});
}
res.json({ success: true, message: 'Successfully created new user.' });
})
});