作为流星方法的结果,如何使用collection.find?

用户名

我正在尝试遵循此处概述的“在模板帮助器中使用Meteor方法的返回值”模式,但集合除外。

本质上,我有这样的事情:

(服务器端)

Meteor.methods({
    queryTest: function(selector) {
        console.log("In server meteor method...");
        return MyCollection.find(selector);
    }
});

(客户端)

Meteor.call('queryTest', {}, function(error, results) {
    console.log("in queryTest client callback...");

    queryResult = [];
    results.forEach(function(result) {
        // massage it into something more useful for display
        // and append it to queryResult...
    });

    Session.set("query-result", queryResult);
});

Template.query_test_template.helpers({
    query_test_result: function() {
        return Session.get("query-result");
    }
});

问题是,我的回调(来自Meteor.call)甚至没有被调用。

如果我仅用“ return“ foo”“替换Method,则回调会被调用。另外,如果我在查找中添加“ .fetch()”,它也会显示正常(但不再是反应式的,这会破坏其他所有内容)。

是什么赋予了?为什么不调用回调?我觉得我真的很亲密,只需要正确的咒语...

如果真的很重要:我在客户端上进行了所有查询就很好了,但是想尝试_ensureIndex之类的东西并进行全文搜索,据我所知,基本上只能通过服务器端方法使用呼叫(而不是在客户端上的mini-mongo中)。


编辑

好的,所以我迁移了发布/订阅的东西,并且总体上它们都在工作,但是当我尝试使其成为会话值作为选择器时,它就无法正常工作。可能与我放置“订阅”的位置有关。

因此,我有一个采用参数“选择器”的发布(目的是传递mongo选择器)。

在客户端上,我已经订阅了:

Meteor.subscribe('my-collection-query', Session.get("my-collection-query-filter"));

但是它的行为参差不齐。在一篇文章中,它建议将它们放在上Templates.body.onCreate那行得通,但不会产生任何反应(例如,当我在控制台上更改该会话值时,它不会更改显示的值)。

因此,如果我遵循另一篇文章的建议,则会将订阅权限放入调用该集合的模板的相关帮助函数中。效果很好,但是如果我有多个模板调用该集合,则必须将订阅添加到其中的每个模板才能起作用。

这些似乎都不是对的。我认为“订阅”是“放下管道并将它们留在那里工作”,但这可能是错误的。

我将继续阅读文档。也许在某处正确解释了订阅的范围。

槟榔

您需要发布数据并在客户端中对其进行订阅。如果您尚未删除“自动发布”,那么您拥有的所有内容都会自动发布。因此,当您在客户端上查询集合时(例如,在一个辅助方法中),您将获得结果。该软件包仅用于快速开发和原型制作,但在实际应用中应将其删除。您应该根据应用程序的需求和用例发布数据。(并非所有用户都必须查看所有用例中的所有数据)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将lambda表达式作为参数插入mongodb'collection.find'方法?

来自分类Dev

如何将`find`的结果作为文件列表传递?

来自分类Dev

如何将Collection.find()限制为流星中的某些选择模式

来自分类Dev

流星在另一个集合中使用collection.find()

来自分类Dev

流星:Deps.autorun中的collection.find()。fetch()失败

来自分类Dev

流星:Deps.autorun中的collection.find()。fetch()失败

来自分类Dev

流星Collection.find()除值外的所有内容

来自分类Dev

如何使用PATH变量作为zsh中find的起点

来自分类Dev

在传递给模板之前如何格式化Collection.find的结果

来自分类Dev

如何将collection.find的结果保存到Array中

来自分类Dev

如何在表格中使用find方法

来自分类Dev

如何在 .find 方法中使用 Or ?

来自分类Dev

find()用于多个结果

来自分类Dev

addClass 与 find 的多个结果

来自分类Dev

返回结果数FIND方法(vba)

来自分类Dev

返回结果数FIND方法(vba)

来自分类Dev

扩展Mongo.Collection破坏find()方法

来自分类Dev

如何合并jQuery find()和filter()的结果?

来自分类Dev

使用数组作为find命令的搜索条件

来自分类Dev

如何使用ls而不是find?

来自分类Dev

如何对 -find 使用多个条件

来自分类Dev

流星db.find在json中的日期作为选择器不起作用

来自分类Dev

Ruby的find方法-参数?

来自分类Dev

Find() 方法 MongoDB 与 Nodejs

来自分类Dev

复杂的collection.find()查询并使用{{#each collection}}进行渲染

来自分类Dev

如何运行find -exec?

来自分类Dev

find -name如何工作?

来自分类Dev

如何使用find()返回查询的结果,以使用MongoDB进行深度搜索?

来自分类Dev

管道作为find的-exec参数

Related 相关文章

热门标签

归档