在客户端上,我正在尝试从服务器中定义的集合中控制.log文档。
我有一个服务器文件,它定义并向客户发布一个集合。
const Translations = new Mongo.Collection('translations');
Meteor.startup(function () {
Meteor.publish('translationsChannel', function () {
return Translations.find();
});
});
module.exports = Translations;
然后我导入Translations集合并在客户端订阅'translationsChannel'。
import Translations from '../../server/main.js';
const translationsSub = Meteor.subscribe("translationsChannel");
if (translationsSub.ready()) {
console.log('Translations: ', Translations.find().fetch());
}
为什么我不能将Translations集合导入客户端?
答案 0 :(得分:2)
我发现了问题。
您无法在服务器中定义集合并将其导出到客户端。解决问题:
我创建了一个import / collections.js文件,用于定义Translation集合并将其导出。
const Translations = new Mongo.Collection('translations');
Translations.schema = new SimpleSchema({
userId: {type: String},
fromLanguage: {type: String},
fromText: {type: String},
toLanguage: {type: String},
toText: {type: String},
});
module.exports = Translations;
然后我在我的server / main.js文件中导入翻译
import Translations from '../imports/collections.js'
Meteor.startup(function () {
Meteor.publish('translationsChannel', function () {
return Translations.find();
});
})
然后我在client / main.js文件中导入翻译
import Translations from '../imports/collections.js';
const translationsSub = Meteor.subscribe("translationsChannel");
if (translationsSub.ready()) {
console.log('Translations: ', Translations.find().fetch());
}
技巧是你需要服务器和客户端之间的公共目录。您可以从'中间常见'中导入集合。文件夹到服务器和客户端