sailsjs中的全局设置

时间:2015-03-07 08:43:02

标签: global-variables sails.js

什么是处理全球"设置的正确方法"在我的sailsjs应用程序中?用户需要通过我的应用程序的Web前端更改这些设置。

我想我可以使用新模型" GlobalSettings"只有一个项目,但我不知道它是否是一个好的" MVC"实践。

3 个答案:

答案 0 :(得分:3)

由于它基于用户输入,因此必须存储在数据库中,因此将其存储在模型中对我来说似乎是正确的选择。

在我看来,只有1行/集合是完全可以的,特别是在无SQL字段中。但是为了获得更多的可重用性和可伸缩性,您可能需要考虑将每个设置实际存储在invididual行中,这可能会为您在未来扩展其可用性提供空间。

答案 1 :(得分:1)

在我看来,我总是发现随着网络应用程序的发展,您将开始意识到您希望用户设置越来越多的字段作为他们的偏好,这是放松应用程序的好习惯。

对我来说,我通常会设置一个包含名称,值,标准和其他一些字段的meta_data模型。

例如,在查看您的网页时,' Alice'可能想要一个黑色的背景色,' Bob'可能想要绿色的背景颜色。然后,您可以让他们修改或插入此meta_data集合中的行。然后在您的数据库中,您将拥有

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

它可以是各种价值观。

当然,如果您只有一个值可以被所有用户更改,那么知道谁更新它们可能是个好主意。为此,您需要创建一个触发器(如果您使用的是sql数据库)see trigger in mysql,以便表上的每个更新都会触发一个函数,该函数存储已更改的内容以及在另一个表中更改了哪些内容

所以,是的,为了回答你的问题,拥有一个存储价值的模型是完全可以的,并且不用担心只有一行,在开发你的应用时你会有更多。

答案 2 :(得分:0)

config/globals.js文件似乎是放置全局配置设置的好地方。

  

为方便起见,Sails公开了一些全局变量。通过   默认情况下,您的应用程序的模型,服务和全局sails对象是   所有可用的全球范围;意思是你可以通过它来引用它们   在后端代码中的任何位置命名(只要加载了Sails)。   Sails核心中的任何内容都不依赖于这些全局变量 - 每个变量和   可以在sails.config.globals中禁用Sails中暴露的每个全局   (通常在config / globals.js中配置。)

     

Sailsjs.org Documentation - Globals

或者,您可以使用sails.config对象。

  

自定义配置

     

Sails识别许多不同的设置,在不同的顶级键下命名(例如sails.config.sockets和

     

sails.config.blueprints)。但是你也可以使用sails.config   您自己的自定义配置(例如   sails.config.someProprietaryAPI.secret)。

     

来自docs

默认情况下,还有一些全局服务。

  

概述   可以将服务视为包含您可能希望在应用程序的许多位置使用的函数的库。例如,   您可能有一个EmailService,它包含一些默认的电子邮件   您希望在您的许多部分中使用的样板代码   应用。在Sails中使用服务的主要好处是它们   全球化 - 您不必使用require()来访问它们。

这实际上取决于你想要的全球化程度。