Вы можете переопределить метод toJSON
экземпляра для добавления/удаления свойств экземпляра модели, но вы можете только положить синхронный код в методе. Общий случай использования, чтобы удалить пароли из User
модели перед его возвращением:
toJSON: function() {
// Get the plain-object version of this instance
var obj = this.toObject();
// Remove the password
delete obj.password;
// Return
return obj;
}
toJSON
автоматически вызывается метод ответа по умолчанию res.json
парусов.
К сожалению, «подсчет комментариев» обычно не является тем, что вы можете делать синхронно, поскольку для этого потребуется взаимодействие с базой данных. Итак, toJSON
отсутствует. Вместо этого вы можете написать метод класса findProducts
для класса Product
, который выполняет нормальный Product.find
, а затем перебирает результаты и добавляет свойство comment_count
для каждого. Размещение кода в методе класса модели лучше, чем выполнение его непосредственно в действии контроллера, поскольку метод класса можно вызывать из любого места (т. Е. Его можно использовать в нескольких контроллерах).