Ich bin ein einfaches Blog app machen NodeJS mit + auszudrücken, i ersten Beitrag, ohne ein Problem hinzufügen kann, aber wenn ich versuche zweiten Beitrag hinzuzufügen bekam ich seine Fehler { MongoError: E11000 duplicate key error collection: restful_blog_app_v2.blogs index: username_1 dup key: { : null }
MongoError: E11000 Nachschlüssel Fehler
das ist mein Schema
var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");
var BlogSchema = new mongoose.Schema({
title: String,
image: String,
body: String,
created: {
type: Date,
default: Date.now
},
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
}
});
BlogSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("Blog", BlogSchema);
das ist das Benutzerschema
var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");
var UserSchema = new mongoose.Schema({
username: String,
password: String,
});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", UserSchema);
das ist die neue Post-Route erstellen
app.post("/blogs", isLoggedIn, function (req, res) {
req.body.blog.body = req.sanitize(req.body.blog.body);
var title = req.body.blog.title;
var image = req.body.blog.image
var body = req.body.blog.body;
var created = req.body.blog.created;
var author = {
id: req.user._id,
username: req.user.username
}
var newPost = {
title: title,
image: image,
body: body,
created: created,
author: author
}
Blog.create(newPost, function (err, newBlog) {
if (err) {
console.log(err);
res.render("new");
} else {
console.log(newBlog);
res.redirect("/blogs");
}
});
});
Ich habe versucht, um die gesamte Datenbank mit db.dropDatabase fallen gelassen() aus der Mongo-Konsole, aber das Problem weiter bestehen nach wie vor, nicht sicher, was jetzt Dies wird verursacht durch passport-local-mongoose
,
In Ihrem Code ist Benutzername ein eindeutiger Index in Mongo-Schema. Sie fügen 2 Beiträge mit dem gleichen Benutzernamen hinzu und speichern sie in der Datenbank wird der Fehler führen. – thelonglqd
@thelonglqd Wie können Sie sehen, Benutzername ist eindeutiger Index in Mongo-Schema? – Tolsee
index: username_1 dup key: {: null} Dieser Fehler besagt, dass das Feld username ein eindeutiger Index ist und Sie bereits einen Nullwert in der Datenbank haben. Wenn Sie also einen anderen Nullwert speichern, um das Feld in der Datenbank eindeutig zu indizieren, wurde dieser Fehler ausgelöst siehe ... Bitte auf diese Antwort http://stackoverflow.com/a/24430345/6880789 – Tolsee