2016-11-06 8 views
0

Я начинаю изучать Sails.js, и я хочу знать, есть ли более простой способ установить значение по умолчанию в модели из переменной сеанса? Я использую Waterlock, чтобы выполнить аутентификацию и установив user_id в переменной сеанса, как req.session.user_id. У меня есть модель сообщений, я хочу по умолчанию указать поле 'from' этой переменной сеанса. Есть ли способ сделать это в Sails.js?Установить значение по умолчанию для модели (Sails.js)

ответ

0

Если вы используете по умолчанию ОРМ паруса, ватерлинии, то модели атрибуты имеют defaultsTo вариант. Поставляемое значение может быть функцией. Вы можете посмотреть на waterline documentation.

образца Модель

module.exports = { 
    attributes: { 
    description: { 
     type: 'string', 
     defaultsTo: 'No description.' 
    }, 
    email: { 
     type: 'email', 
     required: true, 
     unique: true 
    }, 
    alias: { 
     type: 'string', 
     defaultsTo: function(){ 
     return this.email; 
     } 
    }, 
    } 
}; 

Если подаваемое значение является функцией, то вызов этой функции связана со значениями в создании.

Для Model.create(values)..., если псевдоним null/undefined, то alias = defaultsTo.call(values) используется для получения значения для псевдонима.

Чтобы использовать req.session.user_id, возможно, вам придется включить его во время создания. Model.create({session: req.session,...}). Я не уверен, потому что я не использую Waterlock. И я не думаю, что это лучший способ сделать это.

Из моего опыта эти дополнительные значения игнорируются при использовании адаптеров, таких как парусов-MySQL, но если вы используете парусов-диска для развития, то можно увидеть, что эти дополнительные значения сохраняются. Вы можете удалить их, прежде чем будете продолжать.

beforeCreate: function(values, cb){ 
    delete values['session']; 
    cb(); 
    } 

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

  • Нет связанных вопросов^_^