2015-03-07 4 views
1

Что было бы правильным способом справиться с глобальными «настройками» в моем приложении sailsjs? Пользователь захочет изменить эти настройки через веб-интерфейс моего приложения.глобальные настройки в sailsjs

Я предполагаю, что могу использовать новую модель «GlobalSettings» только с одним элементом, но я действительно не знаю, хороша ли практика «MVC».

+0

Что значит «только с одним товаром»? У вас есть только один пользователь? –

+0

Если по настройкам вы имеете в виду * предпочтения *, то они должны храниться в базе данных. –

ответ

3

Поскольку он основан на пользовательском вводе, его необходимо хранить в базе данных, и поэтому его хранение в модели кажется правильным выбором для меня.

Имея всего 1 строку/коллекцию, на мой взгляд, вполне нормально, особенно в поле без SQL. Но для большей возможности повторного использования и масштабируемости вы можете захотеть, чтобы на самом деле сохранить каждый параметр в строке, отличной от числа, что может дать вам пространство для расширения удобства использования в будущем.

+0

Вы можете сохранить их всех в одной коллекции, но каждая строка может быть историей изменений. Каждое изменение - это новое создание в коллекции, а последняя вставленная строка - самые последние изменения. – Meeker

0

Файл config/globals.js, по-видимому, является хорошим местом для установки глобальной конфигурации.

Для удобства Sails предоставляет несколько глобальных переменных. По умолчанию , ваши модели приложения, службы и глобальный объект парусов - это все доступные в глобальной области; что означает, что вы можете ссылаться на них по имени в любом месте вашего внутреннего кода (до тех пор, пока Sails был загружен). Ничто в ядре парусов не зависит от этих глобальных переменного - каждый и каждых глобального подвергается в парусах может быть отключена в sails.config.globals

Sailsjs.org Documentation - Globals

(обычно сконфигурированной в конфигурации/globals.js.)

В качестве альтернативы вы можете использовать объект sails.config.

Пользовательские конфигурации

парусов распознает множество различных настроек в соответствии с пространством имен различных ключей верхнего уровня (например, sails.config.sockets и

sails.config.blueprints). Однако вы также можете использовать sails.config для свою собственную конфигурацию (например, sails.config.someProprietaryAPI.secret).

docs От

Существует также услуг, который является глобальным по умолчанию.

Общая информация Услуги можно рассматривать как библиотеки, которые содержат функции, которые вы можете использовать во многих местах вашего приложения. Например, у у вас может быть EmailService, который обертывает стандартное сообщение электронной почты , которое вы хотели бы использовать во многих частях вашего приложения . Основное преимущество использования сервисов в Sails заключается в том, что они являются глобализированными - вам не нужно использовать require() для доступа к ним.

Это действительно зависит от того, какой глобальный вы хотите.

1

По моему мнению, я всегда нахожу, как разрабатывается веб-приложение, вы начнете понимать, что все больше и больше полей, которые вы хотите, чтобы пользователь настраивал как их предпочтение, как хорошую практику для расслабления приложения.

Для меня обычно я устанавливаю модель meta_data с именем, значением, критериями и некоторыми другими полями.

Например, при просмотре вашей веб-страницы «Алиса» может иметь черный цвет фона, «Боб» может иметь зеленый цвет фона. Затем вы можете позволить им изменить или вставить строку в эту коллекцию meta_data. Тогда в вашей базе данных у вас будет

name    value    criteria 
background_color black    user_name='Alice' 
background_color green    user_name='Bob' 

и это могут быть разные значения.

Конечно, если у вас есть только одно значение, которое может быть изменено всеми вашими пользователями, вероятно, это хорошая идея узнать, кто их обновил. Для этого вам нужно создать триггер (если вы используете базу данных sql) see trigger in mysql, чтобы каждое обновление в таблице вызывало функцию, в которой хранится то, что было изменено, и кто изменил ее в другой таблице.

Итак, да , чтобы ответить на ваш вопрос, вполне нормально иметь модель для хранения значения, и не волнуйтесь только о одной строке, у вас будет больше, когда вы будете разрабатывать свое приложение.

Смежные вопросы