2016-01-12 5 views
0

Приложение My Sails помогает контролировать состояние нашей системы, контролируя сочетание артефактов (файлы журналов, экспорт и т. Д.) И изменения в реальном времени (события, веб-крючки и т. Д.).Могу ли я (и должен ли я) переопределить свойства createdAt и updatedAt модели Sails.js?

В различных графиках приложение считывает артефакты и использует .findOrCreate() и .update() для обновления состояния приложения Sails. Паруса затем устанавливают экземпляры createdAt и updatedAt свойствам new Date() во время сохранения; однако я бы хотел, чтобы эти времена соответствовали отметке времени его исходного артефакта.

Как я могу переопределить значения для своих createdAt и updatedAt свойств модели Sails.js? И будет ли какая-нибудь очевидная добыча в результате установки их на конкретную временную метку?

+0

До сих пор я хранил данные в отдельных свойствах, но я бы предпочел переопределить значения 'createdAt' и' updatedAt'. Кроме того, я хотел бы понять влияние этих полей на поведение системы. – STW

+0

вы видели мой ответ? Если у вас есть какие-либо вопросы, пожалуйста, спросите - будьте рады уточнить, если необходимо. – arcseldon

+0

Спасибо, оцените. – arcseldon

ответ

1

В вашей модели вы можете отключить настройки по умолчанию.

autoCreatedAt: false, 
autoUpdatedAt: false, 

Теперь вы можете использовать свои собственные значения. Вы можете использовать beforeUpdatelifecycle callback (при необходимости), чтобы добавить какое-либо дополнительное поведение непосредственно перед обновлением модели.

Например:

beforeUpdate:function(values, next) { 
    // do whatever you need here if required. 
    // you could just override the default createdAt, updatedAt behaviour 
    next(); 
} 

См similar question ответил на основной сопровождающий здесь.

Если это все еще не совсем соответствует вашим потребностям, то оставьте мне комментарий ниже, и я попытаюсь обновить ответ дальше.

+0

У меня была возможность поиграть с этим и подумать, что это сработает. Установка 'autoUpdatedAt: false' удаляет свойство из модели, поэтому его необходимо добавить в' attributes' как 'updatedAt: 'datetime''. – STW

Смежные вопросы