2016-10-19 2 views
0

Я хочу передать уведомление всем пользователям в одной из моих служб, уведомлениями являются атрибут массива модели пользователя. , поэтому я должен нажать объект нового уведомления на каждый массив пользовательских уведомлений в базе данных. вот мой код:.save() не работает на Sails

broadcastNotif : function (notif) { 
    return new Promise(function (resolve, reject) { 
     User.find().exec(function (err, users) { 
     if (err) return reject(err); 
     else { 
      while (users.length>0) { 
      var user = users.pop(); 
      if (user.notifications==undefined) 
       user.notifications=[]; 
      user.notifications.push({ 
       type : notif.type, 
       title : notif.title, 
       link : notif.link, 
       date : notif.date 
      }); 
      sails.log(user); 
      user.save(function (err) { 
       if (err) return reject(err); 
      }) 
      } 
      return resolve(); 
     } 
     }) 
    }) 
    } 

sails.log(user) печатать правильные объекты в консоли, но когда я проверить мой Database Монго нашел ничего там сохраняется, они все без изменений.

что с этим? user.save()?!

+0

Как выглядит ваша модель 'User'? – Fissio

+0

@Fissio это моя модель пользователя: [link] (https://github.com/AliKarami/lab Река/BLOB/Master/API/модели/user.js) –

ответ

0

к сожалению, я нашел парусов не поддерживает массив атрибутов, как это в моделях:

notifications : [ 
    { 
    type : { 
     type : 'string', 
     defaultsTo : 'general' 
    }, 
    title : { 
     type : 'string', 
     required : true 
    }, 
    link : { 
     type : 'string' 
    }, 
    date : { 
     type : 'datetime', 
     defaultsTo: new Date().toISOString() 
    } 
    } 
] 

, и я вынужден изменить мои уведомления приписывать:

notifications : { 
    type : 'array' 
} 

и проверять и проверять все вручную: (