【发布时间】:2018-06-29 11:38:50
【问题描述】:
我确信正确地创建了我的集合、发布了数据、订阅了正确的发布,并检查了数据是否真的出现在 Mongo Shell 中。我什至 console.log()'d 正在发布的数据以确保发布工作正常。然而,以下代码行没有返回任何内容:
const maybeMeet = Meets.find({meetId: maybeId}).fetch();
这可以在下面和链接仓库中/client/imports/routes/routes.js 的第 39 行中找到。
有一次,我什至尝试创建一个新的 Meteor 方法 'meets.query',它只会发布我需要的所有数据,(不安全地)避免发布和订阅的需要(现在在 @ 的第 59 行注释掉了987654326@)。那也没用。一般来说,客户端似乎无法从服务器接收任何数据,但从客户端到服务器似乎可以工作(我可以将东西插入到我的 Meets 集合中)。
这里是问题的根源(routes.js的一部分):
export const routes = (
<div id='app'>
<Header />
<Router history={browserHistory}>
<Switch>
<Route exact path="/" render={() => {
return <Landing />
}} />
<Route path="/before" render={() => {
return <Before />
}} />
<Route path="/meet" render={() => {
Meteor.subscribe('allMeets');
const maybeId = queryString.parse(location.search).m;
console.log(typeof maybeId);
console.log(maybeId);
const maybeMeet = Meets.find({meetId: maybeId}).fetch(); //***RETURNS NOTHING!***
return maybeMeet.length ? <Created meet={maybeMeet[0]} /> : <NotFound />;
}} />
<Route path="*" render={() => {
return <NotFound />
}} />
</Switch>
</Router>
</div>
);
这里是我发布数据的地方(`meets.js' 的一部分):
if (Meteor.isServer) {
Meteor.publish('allMeets', function() {
return Meets.find();
});
}
如果您需要查看更多代码,请查看整个代码库:https://github.com/kpeluso/meetr
我为凌乱的代码道歉 - 这是一个新项目。
【问题讨论】:
-
我不需要访问您的存储库来获取您的代码。请阅读How to create a Minimal, Complete, and Verifiable example。
-
刚刚编辑,感谢社区指南的链接。
标签: javascript mongodb reactjs meteor