服务器文件夹中的Meteor出版物

服务器文件夹中的Meteor出版物,meteor,meteor-react,meteor-collections,Meteor,Meteor React,Meteor Collections,我有一个名为librarytems的集合,它在客户端和服务器端都可用 api/libraryitems/libraryitems.js 我希望有一个包含特定发布的服务器文件夹,而不是同一文件中的if(Meteor.isServer){..}发布: api/libraryitems/server/publications.js 但不知怎的,出乎我的意料,这本书是不可用的 更新 这是我的订阅代码(meteor+reactjs): ./imports/ui/Library.js 您将库项导出为默认导出

我有一个名为
librarytems
的集合,它在客户端和服务器端都可用

api/libraryitems/libraryitems.js

我希望有一个包含特定发布的服务器文件夹,而不是同一文件中的
if(Meteor.isServer){..}
发布:

api/libraryitems/server/publications.js

但不知怎的,出乎我的意料,这本书是不可用的

更新

这是我的订阅代码(meteor+reactjs): ./imports/ui/Library.js


您将库项导出为默认导出,这意味着您在导入库项时不需要在库项周围加上花括号

将导入更改为:

从“../LibraryItems”导入库项

另外,稍微清理一下发布代码:

返回LibraryItems.find({})

编辑

既然您已按要求发布了订阅代码,我看到您正在使用不同的名称订阅该出版物

改为:

Meteor.subscribe('LibraryItems.all');

希望这能有所帮助

您正在将LibraryItems导出为默认导出,这意味着您在导入时不需要在其周围加上花括号

将导入更改为:

从“../LibraryItems”导入库项

另外,稍微清理一下发布代码:

返回LibraryItems.find({})

编辑

既然您已按要求发布了订阅代码,我看到您正在使用不同的名称订阅该出版物

改为:

Meteor.subscribe('LibraryItems.all');

希望有帮助

我忘记在
mains.js中注册出版物了


import'../imports/api/libraryitems/server/publications'

我忘了在
mains.js
中注册出版物:


import'../imports/api/libraryitems/server/publications'

好的,那么您在其他地方一定有问题。你能发布你的订阅代码和助手代码吗?好的,那么你在别处肯定有问题。你能发布你的订阅代码和帮助代码吗?你所说的“此出版物不可用”是什么意思?既然你发布了你的容器,我已经编辑了我的原始答案code@Sean,那是一个打字错误,我的错你所说的“本出版物不可用”是什么意思?既然你发布了你的容器,我已经编辑了我的原始答案code@Sean,那是个打字错误,我的错
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);
Meteor.subscribe('LibraryItems.all');