#strongloop #loopbackjs
#strongloop #loopbackjs
Вопрос:
Я хотел бы зашифровать поля, подобные этому примеру, с помощью mongoose: https://gist.github.com/kljensen/7505729
Код в приведенной выше ссылке сопоставляет поле с пользовательской decrypt()
функцией для get
и encrypt()
функцией для set
.
Это приводит к тому, что значение обычного текста шифруется при сохранении и расшифровывается при извлечении.
Как мне переопределить getters и setters для свойства модели в Loopback?
Ответ №1:
Вы можете настроить setter и getter следующим образом:
<Model>.setter['myProp'] = function(val) {};
Смотрите Пример в loopback’s common/models/user.js
Комментарии:
1. Спасибо Raymond, это позволяет мне правильно работать с сеттером, но я не могу заставить геттер работать. Я проверил исходный код и не могу найти хороших примеров этого. Есть ли какие-нибудь примеры для getter, которые вы можете придумать?
2. Как только я обновил loopback до последней версии,
getter
все сработало, как ожидалось, просто вернув строку. Спасибо, что наставили меня на путь истинный!3. @Tom Я исправил ссылку.
4. О примере в пользовательской модели: вместо этого используйте параметр настройки электронной почты
this.$email = value
this.email = value
, чтобы избежать конфликтов имен. Вот специальное исправление в ядре обратной связи для этого: github.com/strongloop/loopback-datasource-juggler/blob/master /…