SailsJS предотвращает попадание нежелательных данных в базу данных

StackOverflow https://stackoverflow.com//questions/21008372

Вопрос

Итак, с помощью 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 будут автоматически отфильтрованы во время сохранения модели.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top