2015-07-16 2 views
-1

Если бы я хотел отправить параметр внутри метода экземпляра, каков способ сделать это?Отправить параметры в методе instance (Mongodb/mongoose)

var User = new Schema({ 
    following: [{ type: Schema.Types.ObjectId, ref: 'User' }], 
    followers: [{ type: Schema.Types.ObjectId, ref: 'User' }] 
}); 

User.methods.follow = function(otherUser, cb) { 
    this.following.push(otherUser); 
    this.save(cb); 
}; 

User.methods.unfollow = function(otherUser, cb) { 
    var index = this.following.indexOf(otherUser._id); 
    if (index >= 0) 
    { 
    this.following.splice(index, 1); 
    this.save(cb); 
    } 
}; 

Могу ли я передать «otherUser» таким образом? Если нет, следует ли использовать статические методы для этого?

Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я пытаюсь использовать метод, я получаю «не имеет метода» следовать за ». Я не уверен, что я делаю неправильно .... Я должен упомянуть, что я использую паспорт для аутентификации. Не уверен, что это повлияет на то, что я вижу ...

+0

Да, вот как вы это делаете. Разве это не работает для вас? – JohnnyHK

+0

@JohnnyHK: Я продолжаю получать, не имеет метода «следовать» всякий раз, когда я пытаюсь выполнить user1.follow (user2, function ...) – healthycola

+1

как вы создаете экземпляр user1? Можете ли вы поделиться соответствующим кодом? –

ответ

0

Выглядит прямо мне. Единственное примечание - вы можете использовать * this.following.pull({_id: otherUser}) вместо splice.

  • Предполагая, что вы передаете идентификатор пользователя.
Смежные вопросы