我是mongodb和MeteorJs的新手,在我看过的教程中,有一个Main.js文件,其中集合在顶部声明。但是,对于(必须是最近的)更新,现在有一个server / main.js和一个client / main.js文件,因为我的集合需要可以访问哪个/哪个文件应该创建它?
答案 0 :(得分:1)
请务必阅读有关申请结构的指南:https://guide.meteor.com/structure.html
根据指南,我在/ imports中创建域区域并将我的集合放在那里。例如如果我有派对的集合,它很可能会到这里:
/imports/api/parties/Parties.js
...并发布它:
/imports/api/parties/server/partiesPublish.js
另外:/ import中的文件不会被急切地抓取,因此在任何需要收集的地方,你都必须导入它。按照导入/导出语法指南进行操作:https://guide.meteor.com/structure.html#intro-to-import-export
答案 1 :(得分:0)
将您的收藏集放在除client/
或server/
如startup/collections.js
或/imports/api/module/collections.js
如果您将收藏集放在client/
文件夹中,它们将仅在客户端上可用。 server/
也是如此。
我的情况下你使用import不要忘记:
export const Sources = new Mongo.Collection( "Sources" );
并在需要时使用它们
import { Sources } from '/imports/startup/collections.js';
答案 2 :(得分:0)
我现在不会创建复杂的文件夹结构。
假设您保留默认的Meteor create
文件夹结构
应该有:
-Client
-Server
// Add a Common, Public & Private folder at the root level
-common ( declare your and export your collections as default )
-public ( Images & assets folder accesible from the root domain )
-private ( private stuff )
服务器或客户端中的任何内容都将在 方面运行。
干杯
答案 3 :(得分:0)
根据Meteor 1.4.4.2指南,只看一下下面的包结构(这里部分显示,实际上它包含很多东西)
PROJECT_NAME_HERE
|____imports
|_____api
|_____[YOUR_MODULE_NAME]
|_____ server
|_______publication.js
-link.js
注意:任何名为server的文件夹都应在服务器端运行
link.js 包含集合的初始化,如下所示
import { Mongo } from 'meteor/mongo';
export const Links = new Mongo.Collection('links');
publication.js 按名称本身,具有从服务器端在Meteor中发布集合的代码
import { Meteor } from 'meteor/meteor';
import { Links } from '../links.js';
Meteor.publish('links.all', function () {
return Links.find();
});
在您在服务器端注册上述发布之前,这不起作用,因此您必须在文件 imports \ startup \ server \ register-api.js 中声明注册,如下所示,
import '../../api/YOUR_MODULE_NAME/server/publications.js';
上述集合示例可以通过使用以下命令创建完整的流星项目来开发;
meteor create --full PROJECT_NAME_HERE
上面生成的代码包含为您开发的所有代码,您只需要分析这些位。