sailsjs中的全局设置



在我的sailsjs应用程序中处理全局"设置"的正确方法是什么?用户将希望通过我的应用程序的web前端更改这些设置。

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

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

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

在我自己看来,我总是发现随着web应用程序的发展,你会开始意识到有越来越多的字段是你希望用户根据自己的喜好设置的,这是放松应用程序的好方法。

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

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

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

它可以是各种各样的值。

当然,如果您只有一个值可以由所有用户更改,那么了解是谁更新了这些值可能是个好主意。为此,您需要创建一个触发器,(如果您使用的是sql数据库)请参阅mysql中的触发器,这样表上的每次更新都会触发一个函数,该函数将更改的内容和更改者存储在另一个表中

所以,是的,为了回答你的问题,有一个模型来存储价值是完全可以的,不要担心只有一行,随着你开发应用程序,你会有更多。

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

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

Sailsjs.org文档-Globals

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

自定义配置

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

sails.config.blueprint)。但是,您也可以将sails.config用于您自己的自定义配置(例如。sails.config.someOwneryAPI.secret).

从文档

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

概述服务可以被视为库,其中包含您可能希望在应用程序的许多地方使用的函数。例如你可能有一个EmailService,它包装了一些默认的电子邮件您希望在您的应用在Sails中使用服务的主要好处是是全球化的——您不必使用require()来访问它们。

这实际上取决于你想要什么样的全球化。

相关内容

  • 没有找到相关文章

最新更新