[英]Using a Mongoose Schema Function Inside Of An Exported Mongoose Model
我最近一直致力於一個身份驗證系統,如果沒有給定ID的用戶存在, 或者在具有現有ID的用戶中加載,則應該創建一個新用戶。 我也已經發現你可以通過使用返回用戶是否存在ID
User.count({_id: id}, function (err, count){
if(count > 0){
// User exists, continue with loading data
} else {
// User does not exist, create one
}
});
用戶是導出的Mongoose模型mongoose.model('User', UserSchema);
如果我現在在我的app.js中創建了一個函數existWithId(id),它將完美地工作 (判斷前面提到的代碼工作得很好 ),但我想將此函數移動到我的user.js模型(它包含Mongoose / MongoDB代碼),所以我只為那個特定的模型。 每當我嘗試使用時都這樣做
UserSchema.statics.existsWithId = function(id) {
this.count({_id: id}, function (err, count){
return count > 0;
});
}
或者類似的方法,一旦我在app.js中運行它,它將只返回undefined或錯誤。
注意: 如果這是一個簡單甚至是愚蠢的問題,我很抱歉,但考慮到使用Mongoose進行DB管理,我很新,雖然我確實有一些 JS的經驗,但我並不是一個專業人士。
如果您有任何人需要提供額外的代碼來回答問題,請隨時問我,我會這樣做。 此外,我還不能+回答答案,但我總是很感激他們:)
您的existsWithId
方法以異步方式返回一個值,因此您可以對其進行回調以獲得結果,如下所示:
UserSchema.statics.existsWithId = function(id, cb) {
this.count({ _id: id }, function(err, count) {
cb(err, count > 0);
});
}
User.existsWithId("5882c3be5aad09028d4d8b46", function(err, res) {
console.log(res);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.