SailsJS предотвращает попадание нежелательных данных в базу данных
-
21-12-2019 - |
Вопрос
Итак, с помощью SailsJS вы можете просто поместить любые старые данные в свою модель и поместить их в базу данных, даже если элемент не определен в attributes
объект.
Есть ли какой-нибудь способ предотвратить это?кажется глупым пытаться сделать что-то if
а затем выбрасывать ошибки, потому что было бы слишком много вещей, с которыми нельзя было бы справиться.
Например, я только что столкнулся с проблемой, когда у меня есть список пользователей, и я отображаю их через angular ng-repeat
на интерфейсе, и когда я put
данные для сохранения пользователем, он также решает, что "$$hashKey": "00I"
тоже собирается с ними !
Таким образом, он автоматически сохраняется в базе данных, и когда я обновляю и получаю данные снова, то "$$hashKey": "00I"
возвращается и, следовательно, вызывает эту ошибку
Ошибка:[ngRepeat:dupes] Дубликаты в ретрансляторе не допускаются.Используйте выражение "отслеживать по" для указания уникальных ключей.Ретранслятор:(ключ, пользователь) в admins | filter:Поиск пользователей, дублирующий ключ:объект:00I
Это исходит от angular.
пс.
насколько я знаю, сервер использует sails-диск по умолчанию
Решение
Режим по умолчанию для Sails.js моделей - без схем, что, вероятно, не то, что вам нужно.Итак, все, что вам нужно сделать, это добавить схему в вашу модель:
module.exports = {
schema: true,
attributes: {
// Define all your attributes here...
}
};
После этого все значения, которые не описаны в attributes
будут автоматически отфильтрованы во время сохранения модели.