2015-09-05 2 views
1

Я пытаюсь создать пользовательский атрибут в приложении sails, и я не получаю никакого результата в моем вызове get.Создание пользовательских атрибутов в Sailsjs

Мой код выглядит примерно так:

module.exports = { 
    attributes: { 
     id: { 
      type: 'string', 
      primaryKey: true, 
      defaultsTo: function() { 
       return uuid.v4(); 
      }, 
      unique: true, 
      index: true, 
      uuidv4: true 
     }, 
     name: { 
      type: 'string', 
      required: true 
     } 
     fullName: function(){ 
      return this.name ; 
     } 


}; 

я получить обратно все поля ожидают полное имя

+0

значит «кроме» вместо «ожидать»? –

+0

да, что я имел в виду – iosdevnyc

ответ

0

На мой взгляд модель sailsjs атрибуты только создать соответствующий столбец и получить столбец в базе данных на основе типа. В вашем случае имя fullName не имеет типа. поэтому он не знает, что получить от базы данных.

Однако, если вы хотите, чтобы возвращаемый объект json имел некоторые дополнительные поля, вы можете перезаписать функцию toJSON, чтобы добавить ее.

module.exports={ 
    attributes: 
     id: { 
      type: 'string', 
      primaryKey: true, 
      defaultsTo: function() { 
       return uuid.v4(); 
      }, 
      unique: true, 
      index: true, 
      uuidv4: true 
     }, 
     name: { 
      type: 'string', 
      required: true 
     }, 
     toJSON:function(){ 
      var obj=this.toObject(); 
      obj.fullName=obj.name; 
      return obj; 
     } 
    } 
} 
0

Этот вопрос немного старый, но у меня лучший ответ:

module.exports = { 
     attributes: { 
     firstname : 'string', 
     lastname : 'string, 

     fullName: function() { 
      return this.firstname + ' ' + this.lastname 
     }   

     toJSON:function(){ 
      var obj  = this.toObject(); 
      obj.fullName = this.fullName() 
      return obj; 
     } 
     } 
    } 
Смежные вопросы