[英]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.