Как создать переопределение геттера и сеттера?

Я хотел бы зашифровать поля, подобные этому примеру, с помощью мангуста: https://gist.github.com/kljensen/7505729

Код в приведенной выше ссылке сопоставляет поле пользовательской функции decrypt() для get и функции encrypt() для set.

Это приводит к тому, что обычное текстовое значение шифруется при сохранении и расшифровывается при извлечении.

Как мне переопределить геттеры и сеттеры для свойства модели в Loopback?


person Coder1    schedule 14.06.2014    source источник


Ответы (1)


Вы можете настроить сеттер и геттер следующим образом:

<Model>.setter['myProp'] = function(val) {};

См. пример в common/models/user от LoopBack. .js

person Raymond Feng    schedule 16.06.2014
comment
Спасибо, Рэймонд, это помогает мне правильно работать с сеттером, но я не могу заставить работать геттер. Я искал источник и не могу найти хороших примеров этого. Есть ли какие-нибудь примеры для геттера, о которых вы можете подумать? - person Coder1; 18.06.2014
comment
Как только я обновил loopback до последней версии, getter заработал, как и ожидалось, просто вернув строку. Спасибо, что поставили меня на путь! - person Coder1; 18.06.2014
comment
@ Том, я исправил ссылку. - person Miroslav Bajtoš; 10.11.2016
comment
О примере в модели пользователя: программа настройки электронной почты использует this.$email = value вместо this.email = value, чтобы избежать конфликтов имен. Вот специальное исправление в ядре Loopback для этого: github.com/strongloop/loopback-datasource-juggler/blob/master/ - person countTheRow; 18.03.2019