我有一个名为LibraryItems
的集合,可在客户端和服务器端使用。
API / libraryitems / libraryitems.js
import { Mongo } from 'meteor/mongo';
const LibraryItems = new Mongo.Collection('libraryitems');
export default LibraryItems;
我希望有一个包含特定出版物的服务器文件夹,而不是同一文件中的if (Meteor.isServer) {..}
出版物:
API / libraryitems /服务器/ publications.js
import LibraryItems from '../libraryitems';
import { Meteor } from 'meteor/meteor';
Meteor.publish('LibraryItems.pub.all', function () {
return LibraryItems.find({});
});
但不知何故,出乎我的意料,这份出版物还没有......
更新
这是我的订阅代码(meteor + reactjs): ./进口/ UI / Library.js
import LibraryItems from '../api/libraryitems/libraryitems';
import { createContainer } from 'meteor/react-meteor-data';
...
export default createContainer(() => {
Meteor.subscribe('LibraryItems.pub.all');
var libraryitems = LibraryItems.find().fetch();
return {
libraryitems: libraryitems
}
}, Library);
答案 0 :(得分:2)
您正在将LibraryItems导出为默认导出,这意味着在导入它时,您不需要使用大括号。
将导入更改为:
import LibraryItems from '../libraryitems';
另外,稍微清理出版物代码:
return LibraryItems.find({});
修改强>
现在您已根据要求发布了订阅代码,我看到您订阅的是具有不同名称的发布。
更改为:
Meteor.subscribe('LibraryItems.all');
希望有所帮助
答案 1 :(得分:1)
我忘了在mains.js
注册出版物:
import '../imports/api/libraryitems/server/publications';