我正在迈出第一步,学习如何使用我的Windows 10 PC在meteor.js框架内进行开发。
在Windows中,创建新应用时,系统会创建一个文件夹 客户端和服务器.js文件的单独子文件夹。
我的问题是,如果我在server.js文件中定义一个新的Mongo集合,我该如何从client.js文件中访问该集合?
答案 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';
导入在客户端和服务器代码中都有效。