私はMongooseを新しくしました。 私はMEANスタックを開発しています。ユーザー認証でリストを作成します。(Mongoose)このuser._idを含むPOSTデータにセッションからuser._idを取得する方法
(つまり、ユーザーはログインを登録し、作成、取得、更新、削除することができます)。
2つのスキーマを意味します。 'users'と 'tasks' 1対多関係:ユーザーは多くのタスクを持つことができ、多くのタスクはユーザーに属します。
これは、「タスクのスキーマをどのように見えるかです:
すべてのユーザーがアクセス権を持っている可能性がotherwhise私は、「所有者」属性としてuser._idが必要になりますCRUDメソッドを構築するためにconst TaskSchema = new Schema({
title:{
type: String,
required: true
},
owner:{
type: Schema.Types.ObjectId,
ref:'User'
}
});
localStからuser._idになるだろう、フロントエンドで
Angular2:タスクリストには、それは私は2つの選択肢が考えていたuser._idを取得するには、
を更新を作成したり、タスクを削除しますユーザをログインさせ続けるために以前に格納されていたブラウザのオーケー。
const user = localStorage.getItem( 'user');
「タイトル」属性を送信するのと同じオブジェクトで送信します。 このオプションは、フロントエンドの誰もがIDを送信できないほど安全ではないと思います。
セッションのバックエンドにある現在のuser._idを取得します。 (私はそれをやる方法を知っていません)。そして、POSTメソッド、このようなもので、新しいタスクオブジェクトに含める:第二の選択肢(前者が優れている場合を除く)、どのように撮影
.post('/task', function(req, res, next){ function(req, res, next){
var task = new Task({
title: req.body.title,
owner : req.user._id /// Does not do nothing
});
if(!task.title){
res.status(400);
res.json({
"error":"Bad Data"
});
} else{
task.save(task, function(err, task){
if(err){
res.send(err);
}
res.json(task);
});
}
});
あなたはPOSTメソッドを構築しますか? 具体的には、セッションから現在のuser._idを取得し、新しいTaskオブジェクトを含めるにはどうすればよいですか?
すぐにあなたのご意見をお待ちしております。 ありがとうございます。
少し異なる
私はあなたの提案にちょうど従って、それは私と同じエラーを示しています:未定義のプロパティ '_id'を読むことができません –