我在哪里可以在MeteorJS中声明我的收藏?

时间:2017-05-12 18:16:21

标签: mongodb meteor

我是mongodb和MeteorJs的新手,在我看过的教程中,有一个Main.js文件,其中集合在顶部声明。但是,对于(必须是最近的)更新,现在有一个server / main.js和一个client / main.js文件,因为我的集合需要可以访问哪个/哪个文件应该创建它?

4 个答案:

答案 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

上面生成的代码包含为您开发的所有代码,您只需要分析这些位。