【发布时间】:2017-06-07 06:13:16
【问题描述】:
我最近一直在研究一个身份验证系统,如果不存在具有给定 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
}
});
User 是导出的 Mongoose 模型 mongoose.model('User', UserSchema);
如果我现在在我的 app.js 中创建了一个函数 existsWithId(id),它会工作得很好(从前面提到的代码 工作得很好),但我想将此函数移动到我的 user.js 模型(其中包含 Mongoose / MongoDB 代码),以便我只为该特定模型提供它。每当我尝试使用
UserSchema.statics.existsWithId = function(id) {
this.count({_id: id}, function (err, count){
return count > 0;
});
}
或类似的方法,但是,一旦我在 app.js 中运行它,它要么只返回 undefined 要么返回错误。
注意:如果这是一个简单甚至愚蠢的问题,我很抱歉,但考虑到使用 Mongoose 进行数据库管理,我还是个新手,虽然我确实有 JS 方面的一些经验,我不是这方面的专业人士。
如果你们中的任何人需要提供额外的代码来回答问题,请随时问我,我会这样做。另外,我还不能 +rep 回答,但我总是很感激他们 :)
【问题讨论】:
-
现在您可以 +rep 答案
标签: javascript node.js mongodb express mongoose