在我的node.js應用程序中,我正在實現「記住我」功能。目前爲止一切都很順利,但是我對貓鼬有問題。我想做什麼:我有一個與此架構命名Token
型號:找到一個元素,使用數據,然後刪除它
var TokenSchema = mongoose.Schema({
token: { type: String },
uid: { type: Schema.Types.ObjectId, ref: 'User' }
});
這是一個簡單的cookie標記映射到userid的一個小集合。然後,我有這個功能在這裏:
function consumeRememberMeToken(token, fn) {
Token
.findOne({ 'token': token }, (err, result) => {
return (result===null)?fn(null, null):fn(null, result.uid);
})
.remove();
}
它應該做的,是這樣的:找到uid
對於給定token
字符串並返回它(如果有一個結果)。 但是,此函數也應該在返回uid
後刪除該條目。
目前,該uid
從發現令牌result
才能正確返回,但它(結果令牌)並沒有得到與上面的代碼集合中刪除。我不明白如何在獲取它並使用檢索到的uid
後立即將其刪除。我對函數式編程完全陌生,我不明白如何以及在何處刪除令牌。
對不起,但這不起作用... uid得到返回但令牌不會被刪除。換句話說:在運行上述操作之後,現在有2個條目具有相同的* uid *,但集合中具有不同的標記字符串。每次通話都添加一個條目。 – Robert
在刪除回調中添加錯誤參數並檢查它,result.remove(function(error){console.log(error); – Dafuck