Ich versuche, einen neuen Benutzer über Angular App zu registrieren, aber wenn ich einen Benutzer mit dem gleichen Benutzernamen registriere, erlaubt mir Mongo, dies zu tun, so dass es keinen Fehler erneut einträgt und anschließend kann ich zwei Benutzer mit demselben sehen Namen in der Datenbank. Aber ich markiere Namensfeld als einzigartig.Warum erlaubt MongoDB das Erstellen identischer Benutzer?
Teil 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.'});
});
}
});
Modellcode:
// 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
}
});
Und Anforderungscode POST (Login und Passwort werden von außen genommen):
let newUser = {
password: password,
wallet: 0,
userPic: md5(login),
name: login
};
this.$http.post('http://127.0.0.1:8080/api' + '/signup', newUser);
Dieser hat mir geholfen. danke [Antwort] (http://stackoverflow.com/a/27411370/6325253) – boooni