我应该如何使用外部脚本构建Meteor项目?

问题描述:

我很好奇,如果有人已经开发了一个组织Meteor应用程序的最佳实践,该应用程序包含外部shell脚本或发生在node.js服务器代码和客户端js代码之外的其他后端进程。我应该如何使用外部脚本构建Meteor项目?

举例来说,我有一个结构类似这样的流星应用:

project-name 
    client 
    lib 
    models 
    packages 
    public 
    server 

我有一些处理外部数据源的shell脚本,一个Python脚本,做一些其他的繁重。这些都有助于将新数据插入到Mongo实例中。是的,我知道这有些混乱,但后端数据系统也是如此。我的问题是我应该将这些项目放在流星应用程序文件夹中,还是应该放在系统之外?只是好奇别人如何构建这样的应用程序。

选项#1

project-name 
    client 
    ... 
    server 
    data-processor.sh 
    other-utility.py 

选项#2

project-name 
    client 
    ... 
    private 
    data-processor.sh 
    other-utility.py 

选项#3

bin 
    data-processor.sh 
    other-utility.py 
meteor-project-name 
    client 
    ... 
    private 
+0

我认为选项#2是这样做的正确方法。 从http://docs.meteor.com/#structuringyourapp:Meteor收集private子目录下的所有文件,并通过Assets API将这些文件的内容提供给服务器代码。私人子目录是任何应该可以访问服务器代码但不向客户端提供的文件的地方,例如私人数据文件。 – below9k 2014-09-24 19:23:21

你不应该把您的流星项目目录内的任何非流星文件,所有这些都可以通过一些软件包拾取,即使标准的meteor-platform软件包不能识别延期。因此将它们放入/server可能会在将来导致问题。另一方面,/private文件夹是为您的应用程序使用的资源而设计的,因此将脚本放在那里是非语义和不雅观的。

为避免将这些脚本移动到项目文件夹之外,可以将它们存储在隐藏目录中,即任何名称以点开头的目录,即/.scripts。放置在那里的文件不会被Meteor应用程序拾取。

+0

有趣。我明白你对文件夹和流星对阅读所有内容的喜好。我当然不喜欢在.folders中隐藏任何非流星代码。也许这只是一种感觉,但我认为这些是隐藏的配置,而不是关键的应用程序代码。 – 2014-09-25 02:33:54