2014-09-24 98 views
3

我很好奇,如果有人已經開發了一個組織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

回答

1

你不應該把您的流星項目目錄內的任何非流星文件,所有這些都可以通過一些軟件包拾取,即使標準的meteor-platform軟件包不能識別延期。因此將它們放入/server可能會在將來導致問題。另一方面,/private文件夾是爲您的應用程序使用的資源而設計的,因此將腳本放在那裏是非語義和不雅觀的。

爲避免將這些腳本移動到項目文件夾之外,可以將它們存儲在隱藏目錄中,即任何名稱以點開頭的目錄,即/.scripts。放置在那裏的文件不會被Meteor應用程序拾取。

+0

有趣。我明白你對文件夾和流星對閱讀所有內容的喜好。我當然不喜歡在.folders中隱藏任何非流星代碼。也許這只是一種感覺,但我認爲這些是隱藏的配置,而不是關鍵的應用程序代碼。 – 2014-09-25 02:33:54