私はこのプロジェクトに苦労しています。私はいくつかの分野で時代遅れのチュートリアルに従っています。たとえば、Jqueryのバージョンは一部の機能でまったく異なる形式を使用しており、多くの変更を行う必要がありました。しかし、私は最後の大きな問題に取り組んでいると思います。スキーマ変数には、_id、ユーザー名、およびパスワードの種類があります
var UserSchema = new mongoose.Schema({
_id: mongoose.Schema.ObjectId,
username: String,
password: String
});
しかし、アプリに新しいユーザーを追加しようとすると、取得するはずのアラートを取得する代わりに、[オブジェクトオブジェクト]としてポップアップし、データベースには何も追加されません。次に、このエラーがmongo cmdにポップアップします
「エラー:ドキュメントを保存する前に_idが必要です」。
_id行をコメントアウトしようとしましたが、正しいメッセージは表示されますが、データベースには何も表示されません。
その非常にシンプルな:
できないことは、スキーマに含めることですが、初期化しないことです。あなたが話しているエラーがスローされます
_idをuserIdとして指定したいスニペットを試してください。
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var UserSchema = new Schema({
username: String,
password: String
});
UserSchema.virtual('userId').get(function(){
return this._id;
});
_idは、MongoDbによって自動的に追加されます。
データ構造に_idを保持する場合は、必ず正しく初期化してください。
var obj = new UserSchema({
"_id": new ObjectID(),
"username": "Bill",
"password" : "...."
});