我正在尝试通过Angular应用程序注册一个新用户,但是当我注册一个具有相同用户名的用户时,Mongo允许我这样做,因此它不会重新生成错误,之后我可以看到两个用户db中的相同名称。但我确实将名称字段标记为唯一。
api的一部分:
apiRoutes.post('/signup', function(req, res) {
if (!req.body.userId || !req.body.password) {
res.json({success: false, msg: 'Please pass name and password.'});
} else {
var newUser = new User({
name: req.body.name,
password: req.body.password,
wallet: req.body.wallet,
userPic: req.body.userPic
});
// save the user
newUser.save(function(err) {
if (err) {
return res.json({success: false, msg: 'Username already exists.'});
}
res.json({success: true, msg: 'Successful created new user.'});
});
}
});
型号代码:
// set up a mongoose model
var UserSchema = new Schema({
name: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
wallet: {
type: Number,
required: true
},
userPic: {
type: String,
required: true,
unique: true
}
});
POST请求代码(登录名和密码来自外部):
let newUser = {
password: password,
wallet: 0,
userPic: md5(login),
name: login
};
this.$http.post('http://127.0.0.1:8080/api' + '/signup', newUser);
答案 0 :(得分:-1)
尝试使用您的模型:
name: {
type: String,
index:{unique: true},
required: true
}