2017-01-29 2 views
0

Ich mache die ersten Schritte, um zu lernen, wie ich mit meinem Windows 10-PC im Rahmen von meteor.js arbeiten kann.Arbeiten mit meteor.js und mongoDB unter Windows

In Windows erstellt das System beim Erstellen einer neuen App einen Ordner mit separaten Unterordnern für Client- und Server-JS-Dateien.

Meine Frage ist, wenn ich eine neue Mongo-Sammlung innerhalb der server.js-Datei definiere, wie kann ich auf diese Sammlung von der Datei client.js zugreifen?

Antwort

1

was Sie fragen, ist OS-Agnostiker.

Ich denke, Sie wissen bereits, dass Dateien in einem Ordner namens "Server" vom Client nicht gesehen werden, und ebenso Dateien in einem Ordner namens "Client" nicht vom Server gesehen werden.

Meteor wird eifrig Dateien außerhalb solcher Ordner sowohl an den Client als auch an den Server liefern (außer es befindet sich in einem Ordner namens "imports", mehr dazu gleich).

Wenn Ihr Projekt mit übergeordneten Ordnern namens "client" und "server" eingerichtet ist, ist es üblich, einen Ordner namens "collections" auch auf oberster Ebene zu erstellen, um die Sammlungen zu definieren.

also lassen Sie uns sagen, Sie haben eine Datei namens Sammlungen/News.js:

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

, wenn die Datei auf dem Server bedient wird, wird es, dass die Sammlung in Mongo erstellen. Wenn diese Datei dem Client bereitgestellt wird, erstellt sie eine lokale Sammlung in minimongo und verknüpft sie mit der realen Sammlung. In beiden Fällen ist "News" eine globale Variable, auf die Sie von überall zugreifen können.

so dass sollte Ihre Frage beantworten.

gehen wir weiter, MDG empfiehlt eine neue Verzeichnisstruktur in Zukunft. Sie können darüber lesen: https://guide.meteor.com/structure.html

Kurz gesagt, sie wollen, dass wir zu einem Modell bewegen, wo Dateien nicht eifrig geladen werden, sondern explizit von unserem Code importiert. Während der Übergangszeit sind wir dazu bestimmt, unsere Dateien in/Imports zu speichern. Dateien dort sind nicht eifrig geladen.

über das gleiche Beispiel mit "News" existieren würde wahrscheinlich in seinem eigenen Bereich, als ein Modul in einer Datei wie folgt:

Importe/api/news/News.js

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

hier wird die Datei nicht eifrig importiert, aber was auch immer Code stützt sich auf Nachrichten dieses Modul importieren würde:

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

, der Import in Client und Server-Code funktionieren würde.

+0

vielen Dank für die Hilfe. – AdamB

Verwandte Themen