在windows上使用meteor.js和mongoDB

时间:2017-01-29 19:55:25

标签: javascript mongodb meteor

我正在迈出第一步,学习如何使用我的Windows 10 PC在meteor.js框架内进行开发。

在Windows中,创建新应用时,系统会创建一个文件夹 客户端和服务器.js文件的单独子文件夹。

我的问题是,如果我在server.js文件中定义一个新的Mongo集合,我该如何从client.js文件中访问该集合?

1 个答案:

答案 0 :(得分:1)

你所要求的是与操作系统无关的。

我认为您已经知道名为" server"的文件夹中的文件。客户端看不到,同样文件名为" client"服务器看不到。

Meteor会热切地将这些文件夹外的文件提供给客户端和服务器(除非它在名为&#34的文件夹中;导入"稍后会详细介绍)。

所以,如果您的项目设置了顶级文件夹,名为" client"和"服务器",通常在顶层创建一个名为" collections"的文件夹来定义集合。

所以,让我们说你有一个名为collections / News.js的文件:

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

当该文件提供给服务器时,它将在Mongo中创建该集合。当该文件提供给客户端时,它将在minimongo中创建一个本地集合,并将其与真实集合相关联。在这两种情况下,"新闻"是一个可以从任何地方访问的全局变量。

所以这应该回答你的问题。

更进一步,MDG正在推荐一个新的目录结构。你可以在这里阅读:https://guide.meteor.com/structure.html

简而言之,他们希望我们转移到一个模型,在这个模型中,文件不会被急切地加载,而是由我们的代码显式导入。在过渡期间,我们打算将我们的文件放入/进口。那里的文件没有急切加载。

使用上面的相同示例,"新闻"可能存在于它自己的区域,作为一个模块,在这样的文件中:

进口/ API /消息/ News.js

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

这里,文件没有被急切导入,但是任何依赖于新闻的代码都必须导入该模块:

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

导入在客户端和服务器代码中都有效。