2016-09-09 9 views
0

インポートディレクトリ構造の使用方法に関するMeteorドキュメントに続いて、Example directory layoutインポートファイルの構造とコレクションの定義

イラストは言う:パスをlists.jsリストコレクション

lists.jsの#定義はapp/imports/api/lists/list.js
ドキュメントは、コレクションの定義はlibフォルダにする必要があることを示していますクライアントとサーバーの両方にロードする必要があるためです。

これをインポートファイル構造で実現する新しい方法は何ですか?おかげ

答えて

0

The new wayは基本的には主に3つのフォルダを持っています。 importsフォルダーの構造を決定するのはあなた次第です。そこからインポートするファイルを決定するのはあなたです。

パブリックファイル(クライアントでアクセス可能)publicに移動し、プライベートファイル(サーバー上でのみアクセスできるのはAssets APIprivateに移動します。基本的には初心者には十分です。

+0

これは、クライアントとサーバーの両方でロードする必要があるコレクションで、コレクションが定義されているファイルを両方にインポートする必要があることを意味しますか? –

+0

@FredJ。はい、まったく正しいので、サーバー上で必要なコレクションとクライアント上で必要なコレクションを制御できます。クライアントに公開すべきではない、技術的な(つまり、非常に秘密の)コレクションがサーバー上に存在する可能性があるためです。もちろん、その逆の場合もあります。 –

+0

OK、私は動作するようにしましたが、 'export const'修飾子を' colName = new Mongo.Collection( 'colname') 'の行の先頭から削除した場合にのみ、それ以外は動作しません。クライアントとサーバの両方のmain.jsには 'import 'path-to-collection-file'があります。コレクションが定義されているファイルで 'file {path}'から 'export {colname}'を 'export const'で使用すると動作しません。 –

0

最も一般的なファイル構造は

  1. 「クライアント」(すべてのクライアント側のファイル、さらにルータのためにグループ化することができ、 APPL logic..etc
  2. 「サーバ」(すべてのサーバーメソッドや出版物でありますここで ファイルが隕石によって最初にロードされるという付加価値を持つクライアント・サーバの両方に)
  3. 「libに」(共通ファイル)
  4. 「パッケージ」(すべての外部のパッケージはここに置くことができます)
  5. このレベルのフォルダ名は、クライアントとサーバーの両方に共通ですが、最初に読み込まれることはありません。同じことがclient/main.jsのために行く

    import '/imports/lib/mylibrary.js'; 
    import '/imports/collections/users.js'; 
    

    client/main.js 
    server/main.js 
    imports 
    

    はその後、サーバー上で必要なものは何でも、あなたのようserver/main.jsにインポート:

関連する問題