我在貓鼬是新的。 我正在開發一個MEAN堆棧要做與用戶認證的列表。(貓鼬)如何從會話獲得user._id爲了POST數據,包括該user._id
(換句話說,用戶可以註冊登錄和創建,獲取,更新和刪除做的)。
這意味着2個模式:'用戶'和'任務' 有一對多關係:用戶可以有很多任務,許多任務屬於一個用戶。
這是怎麼看的「任務」模式:
const TaskSchema = new Schema({
title:{
type: String,
required: true
},
owner:{
type: Schema.Types.ObjectId,
ref:'User'
}
});
爲了打造CRUD方法,我將需要user._id作爲「所有者」屬性,otherwhise的用戶都可以訪問任務列表,創建更新或刪除任務,
爲了得到user._id它,我就在想兩個選項:
Angular2在前端將從localSt得到user._id 。ORAGE其中先前存儲保持記錄在用戶的瀏覽器
const的用戶= localStorage.getItem(「用戶」);
,然後把它在同一個對象,我送「標題」屬性。 我覺得這個選項太不安全了,因爲任何來自前端的人都可以發送任何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' –