在Sailsjs中创建自定义属性

时间:2015-09-05 04:02:50

标签: sails.js

我正在尝试在我的风帆应用中创建一个自定义属性,但是在我的来电中我没有得到任何结果。

我的代码看起来像这样:

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 ;
      }


};

我找回所有期望全名的字段

2 个答案:

答案 0 :(得分:0)

在我看来,sailsjs模型属性只创建相应的列,并根据类型获取数据库中的列。在您的情况下,fullName没有类型。所以它不知道从数据库中得到什么。

但是,如果你想要的是返回的json对象有一些额外的字段,你可以覆盖toJSON函数来添加它。

<h1 class="midden">Italiaanse Recepten</h1>
<table>
  <tr>
    <td class="naamkolom">Recepten</td>
    <td class="naamkolom">Ingrediënten</td>
    <td class="naamkolom">Bereiding</td>
  </tr>
  <tr>
    <td>Spaghetti carbonara met andijvie</td>
    <td>
      <ul>
        <li>300 g spaghetti</li>
        <li>250 g champignons</li>
        <li>100 g Parmezaanse kaas</li>
        <li>300 g gerookte spekreepjes</li>
        <li>400 g gesneden andijvie</li>
        <li>3 eieren</li>
      </ul>
    </td>
    <td>
      <ol>
        <li>Kook de spaghetti volgens de aanwijzingen op de verpakking.</li>
        <li>Snijd ondertussen de champignons in plakjes. Rasp de Parmezaanse kaas.</li>
        <li>Verwarm een ruime hapjespan zonder olie of boter en bak de spekjes 3 min. op middelhoog vuur. Voeg de champignons en de andijvie in delen toe en bak nog 5 min. Schep regelmatig om. Breng op smaak met peper en eventueel zout.</li>
        <li>Doe ondertussen de eieren in een kom en klop met 2/3 van de kaas los tot saus.</li>
        <li>Giet de spaghetti af en doe terug in de pan. Voeg al roerend de saus toe. Blijf roeren tot de saus iets is ingedikt. Schep het andijviemengsel erdoor. Verdeel over de 4 borden en bestrooi met de rest van de kaas.</li>
      </ol>
    </td>
  </tr>
  <tr>
    <td>Pangrattato</td>
    <td>
      <ul>
        <li>ciabatta</li>
        <li>75 ml olijfolie</li>
        <li>2 tl chilivlokken (molentje)</li>
        <li>2 tenen knoflook</li>
      </ul>
    </td>
    <td>
      <ol>
        <li>Maal de ciabatta in de keukenmachine tot broodkruim</li>
        <li>Verhit de olijfolie in een grote koekenpan.</li>
        <li>Voeg het broodkruim en de chilivlokken, peper en eventueel zout toe en bak in 5 min. op middelhoog vuur krokant.</li>
        <li>Schep regelmatig om. Snijd ondertussen de knoflook fijn. Voeg de knoflook aan de pan toe en bak 2 min. mee op laag vuur.</li>
        <li>Neem de pan van het vuur en laat de pangrattato afkoelen.</li>
      </ol>
    </td>
  </tr>
</table>
<a href="Huiswerk.html">Terug naar startpagina</a>

答案 1 :(得分: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;   
        }
      }
    }