2017-01-29 5 views
0

私は、Windows 10 PCを使用してmeteor.jsフレームワーク内で開発する方法を学ぶ最初のステップを踏み出しています。windows上でのmeteor.jsとmongoDBの操作

ウィンドウでは、新しいアプリケーションを作成するときに、クライアントとサーバーの.jsファイル用に別々のサブフォルダ を含むフォルダが作成されます。

私の質問は、server.jsファイル内に新しいMongoコレクションを定義すると、client.jsファイルからそのコレクションにアクセスするにはどうすればいいですか?

答えて

1

あなたが求めているのは、OSにとらわれないものです。

「サーバー」と呼ばれるフォルダ内のファイルはクライアントには表示されず、同様に「クライアント」というフォルダ内のファイルはサーバーには表示されないことが既に分かっていると思います。

Meteorは、このようなフォルダの外にあるファイルをクライアントとサーバーの両方に提供します(「インポート」というフォルダ内にある場合を除く)。

"client"と "server"と呼ばれるトップレベルのフォルダがプロジェクトに設定されている場合は、コレクションを定義するために最上位に "collections"というフォルダを作成するのが一般的です。

News = new Mongo.Collection('news'); 

そのファイルがサーバーに提供されている場合、それはMongoの中でそのコレクションを作成します。

ので、あなたがコレクション/ News.jsと呼ばれるファイルを持っているとしましょう。そのファイルがクライアントに提供されると、ミニゴンでローカルコレクションが作成され、それが実際のコレクションに関連付けられます。どちらの場合も、「ニュース」はどこからでもアクセスできるグローバル変数です。

あなたの質問にお答えください。

さらに、MDGは新しいディレクトリ構造を推し進めています。 https://guide.meteor.com/structure.html

簡潔に言えば、ファイルを熱心に読み込むのではなく、われわれのコードで明示的にインポートするモデルに移行したいと考えています。移行期間中は、ファイルを/ importに配置することを意図しています。そこにあるファイルは熱心に読み込まれません。

上記と同じ例を使用して、「ニュース」おそらく、このようなファイルでは、モジュールとして、独自の領域に存在します:

輸入/ API /ニュース/ News.js

const News = new Mongo.Collection('news'); 
export {News}; 

は、ここで、ファイルは熱心にインポートしますが、どのようなコードは、そのモジュールをインポートする必要がありますニュースに依存していません。

import {News} from '/imports/api/news/News'; 

インポートはクライアントとサーバーの両方のコードで動作します。

+0

ありがとうございました。 – AdamB

関連する問題