Я пытаюсь выяснить, как загрузить пользователя на основе ID с помощью мангуста в приложении узла. Я исхожу из фона php/mysql, и мне сложно понять, как связать все это вместе в node + mongoose. Может ли кто-нибудь помочь мне улучшить/исправить этот пример?загрузить пользователя на основе id с mongoose
модели Модель/user.js
var mongoose = require('mongoose')
, Schema = mongoose.Schema;
var userSchema = new Schema({
facebookProfile: {},
facebookPages: { type: Array },
created: {type: Date, default: Date.now}
});
userSchema.methods = {
getManagedPages: function(){
return this.facebookPages;
}
}
userSchema.statics = {
load: function(userid){
return this.findById(userid);
}
}
module.exports = mongoose.model('User', userSchema);
в контроллерах контроллера/user.js
var User = mongoose.model("User");
var currentUser = new User();
currentUser = currentUser.load(req.user._id);
Ошибка я получаю:
TypeError: Object { _id: 52861322f38d7ded3f000001, created: Fri Nov 15 2013 13:27:14 GMT+0100 (CET), facebookPages: [] } has no method 'load' at exports.profile
Спасибо, я могу получить мой пользователя на основе этого синтаксиса, но я не очень нравится, имея весь код базы данных в моих контроллерах и хотел бы переместить его в мои модели, например, в методе «load», как вы можете видеть в моем примере выше. Вы знаете, как я могу переместить эту логику в функцию «load» в моей модели User, как вы можете видеть выше? – Jorre
проверить мой обновленный ответ – Damodaran
Не следует ли использовать статику или функции вместо модели (http://mongoosejs.com/docs/2.7.x/docs/methods-statics.html) или я должен экспортировать каждую функцию вручную, например в вашем примере? – Jorre