Куда поместить SimpleSchema.RegEx.Url2, чтобы его можно было использовать в нескольких простых схемах

Новое в Метеоре.

Я хотел бы расширить SimpleSchema.RegEx дополнительным RE, чтобы он был доступен в нескольких схемах. я пытался поставить

SimpleSchema.RegEx.Url2 = /.../;

в lib, collections, client и server, но ни один из них не работает.

Нужны подсказки.

Спасибо.


person rbell01824    schedule 30.06.2015    source источник
comment
Логично было бы место под /lib/simple-schema.js, не понимаю, почему это не сработает?   -  person saimeunt    schedule 30.06.2015
comment
Оказывается, это не совсем решение. Это работает в некоторых случаях, но не в других. Когда не удается запустить приложение с выходом метеора: Ошибка: недопустимое определение поля изображения в ссылке на RegEx.Url2. Я подозреваю, что проблема в динамическом порядке загрузки, но не знаю, как ее решить.   -  person rbell01824    schedule 01.07.2015
comment
Проблема оказалась в порядке загрузки. См. решение ниже.   -  person rbell01824    schedule 03.07.2015


Ответы (1)


В моем случае мои коллекции были определены в

`app\lib\collections\simple_schema.js`

размещение RE в файле в этом каталоге работало иногда, но не всегда.

Основной проблемой был порядок загрузки. Для коллекций в файлах с именами, которые сортируются ПОСЛЕ simple_schema.js, был доступен дополнительный RE. Для тех, чьи имена сортируются ДО simple_schema.js, RE был недоступен.

Размещение simple_schema.js в

`app\lib\collections\simple_schema_extensions\simple_schema.js` 

решает проблему, так как порядок загрузки Meteor - сначала глубина (хорошо задокументировано).

person rbell01824    schedule 30.06.2015