[英]Querying collection created by an app in another Meteor js app
我有2个查询相同数据库的应用程序,它们都在数据库上创建了diff集合。 myapp:3000
应用程序A创建了集合comments
而myapp:3300
应用程序B在其末尾的同一数据库( school
)中创建了courses
。 两个服务器都在运行,如何查询由应用A在应用B中创建的集合?
我问这个问题的原因是,作为一个新手,我很容易通过使用全局变量来查询在应用程序中创建的新集合。 假设我创建了
UsesList = new Mongo.Collection('useslist');
我可能以这种方式发布它:
Meteor.publish('UsesList', function () {
if (!this.userId) {
return false;
throw new Meteor.Error('Not authorized');
} else {
return UsesList.find();
}
});
我将无法访问此变量,并且我认为直接访问数据库以查询集合可能是不道德的。
在两个不同的应用程序中“创建”相同的集合没有问题。
集合标识由提供给集合构造函数的名称字符串以及数据库本身的标识确定。
您可以将它们分配给所需的任何变量标识符,并且它们在应用程序之间可能有所不同。
但是,我建议您开始使用ES6模块并减少全局名称空间污染。 在学习时就开始使用最佳实践,因此您以后不必再学习不良实践。
因此,假设两个应用程序都连接到同一数据库:
// same in app 1 and app 2
import { Mongo } from 'meteor/mongo';
export const UsesList = new Mongo.Collection('user_list');
// and importing it
import { UserList } from '../path/to/other/file';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.