是否存在在节点中存储和检索静态列表的最佳实践

时间:2016-05-21 18:11:41

标签: javascript node.js

我是第一次在节点中构建应用程序。

我的网站将包含国家/地区的静态列表,音乐类型等......

我应该将数据存储在我的数据库中,还是应该使用带有列表的静态json文件(国家/地区,类型)?

我的文件夹结构类似于src \ lib..scsss..server等等。

我的问题最终是 - 是否存在在节点中存储静态列表的最佳实践 - 如果首选josn文件应该在我的文件夹结构中存在哪个?

2 个答案:

答案 0 :(得分:2)

如果您的数据不会发生变化并且是静态的,那么您应该使用与具有DB Server开销的通信相比具有高R / W操作速率的文件系统。
此外,您可以使用filecache来缓存所有静态文件。哪个会加载文件更快。

答案 1 :(得分:0)

答案实际上是“它取决于”你未指定的一些事情。

首先,如果它是在您的应用程序运行时(或很少更改)不会更改的数据列表,那么您不希望每次需要时从某些远程源加载它。您需要加载一次,然后将该列表保留在内存中以供后续使用。这对您的服务器来说效率会更高。

至于首先存储列表的位置,您有几个选择取决于谁将维护该列表以及他们可能具有的编程技能水平。

  1. 如果国家/地区列表不会经常更改并由Javascript开发人员维护,那么您可以将列表放入代码中的Javascript文字或文件系统中的JSON文件中。如果选择后一个选项作为JSON文件,它可以与您的Javascript源文件位于同一目录中,并且在启动时直接加载require()

  2. 如果国家/地区列表将由不是Javascript开发人员但可以信任遵循JSON语法规则的人员维护,那么您可以将该列表放在JSON文件中。您是将此文件放在与JS文件相同的目录中还是放在单独的data目录中,实际上更多地取决于您的应用程序的部署方式,谁有权做什么等等......

  3. 如果国家/地区列表将由不了解编程规则或语法规则且可以完全独立于您的代码修改的人维护,那么您可能希望将其放入数据库并构建某种类型管理界面用于修改或将其放在纯文本文件中(每行一个国家/地区),然后在应用启动时解析该文件。