问题标签 [meteor-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
81 浏览

javascript - Meteor.call 即使使用回调函数也会引发异常

我有流星方法:

在字段上进行自定义验证statusNote

我的问题是,即使定义了回调函数:

异常记录到控制台:

模拟调用'orderStatusUpdate'的效果时出现异常errorClass {message:“匹配错误:需要注意”,路径:“”,sanitizedError:errorClass,errorType:“Match.Error”,invalidKeys:Array [1]}错误:匹配错误:需要注意

据我了解,当我调用check(...).

我怎样才能捕捉到这个异常以正确地展示给客户?

顺便说一句,回调函数也用error变量集调用。

0 投票
0 回答
89 浏览

meteor - Meteor - 数据未插入数据库

嘿伙计们,我的第二个网络应用程序在我的本地环境中启动并运行,它运行得非常完美,但是当我使用

meteor deploy kortmotmenneskeheten.meteor.com/.

我有一个 Meteor.methods 用于让用户创建一个新游戏,它应该将一个新游戏添加到数据库中,但它似乎对数据库没有影响。这是方法:

显然添加了很多用于调试的 console.log() 语句,它们表明该方法正在运行,直到 try 块,我有点不知所措,感谢任何帮助或指针。

编辑:另外,在我运行该方法后,您无法注销您的帐户。

Github 仓库

该站点部署在流星服务器上

0 投票
0 回答
45 浏览

meteor - 为单个 Meteor 服务器方法定义多个名称

我有一个导出多个服务器方法的 Meteor 包。由于没有关于如何命名方法的普遍约定,我想为每个方法命名多个名称。起初,我使用其他方法对第一个方法的调用:

现在我使用一种更简单的方法:

但是有没有更简单,甚至可能是传统的方法来做到这一点?

0 投票
2 回答
588 浏览

javascript - Meteor.call 回调未执行,如果我不执行提取,它会被静默忽略

为什么如果我写这个:

/client/Items.js

/ItemsMethods.js

回调被静默忽略,即它没有被执行并且我没有收到任何错误?

请注意,如果我将其替换return Items.find({});为这return Items.find({}).fetch();一切,则一切正常。

0 投票
1 回答
219 浏览

meteor - 使用流星发布订阅的投影

我有一个 UI 元素框架,它只适用于特定的数据模型(需要一个带有“文本”键的对象)。这与我的 mongodb 中存在的数据模型不同。所以我的第一个想法是使用投影并将其发布给听众。

var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db; db.Element.aggregate({$project: { _id:1, text:"$description"}});

问题是这不是游标,而只是简单的 ejson 对象。我应该使用什么策略来为 UI 框架提供所需的数据并从双方进行反应性/数据绑定。

0 投票
5 回答
1220 浏览

javascript - 如何防止从 JavaScript 控制台调用“Meteor.call”?

我刚刚注意到,Meteor.call阻止用户调用集合的插入、更新、删除方法的概念仍然可以从 JavaScript 控制台调用。

以客户为例:

这是服务器部分:

好的,我知道人们不能直接从他们的 JavaScript 控制台调用 Product.insert() 。

但是,如果他们再多尝试一点,他们会Meteor.call()从开发者工具的资源选项卡中发现客户端的 JavaScript 中有。

所以现在他们可以尝试Meteor.call从他们的控制台调用,然后尝试猜测应该是什么productInfo属性。

所以我想知道我们如何才能防止这种最终活动?是否Meteor.call做得足够好?或者我错过了一些重要的东西?

0 投票
1 回答
30 浏览

meteor - 方法调用未从事件返回,但将从控制台返回

我有一个奇怪的问题,我无法弄清楚。我的模板事件句柄中有一个方法和一个方法调用。由于某种原因,该方法调用只能像 5 次中的 1 次一样工作,并且不会更新 DOM。当调用起作用时,console.log(Session.get('getReportData')+ " from method call");将对象返回到控制台而不是 DOM。

当我在控制台中手动设置变量并调用:

我把所有东西都拿回来了,DOM 也更新了。

这是代码:

什么会导致这个问题?

  1. 每次通话都不行。
  2. 当它工作时,DOM 没有更新?
0 投票
3 回答
63 浏览

meteor - 使投票系统安全 Meteor.Methods

我正在尝试实现一个安全的投票系统,并且不能使用来自客户端控制台的 Meteor.call() 进行更改。每个人都可以在登录后对一些帖子进行上下投票。但每个用户和帖子一次只能投票一次。

只有我的客户端我得到了这样的东西:

在我的服务器上:

问题是我如何确保这个安全,例如如果有人调用 aMeteor.call('argumentvoteYes', "someID" , {$inc: {score:2}});它将增加 2 的分数。如果用户调用它两次,投票将增加 4。有什么方法可以安全地做到这一点?

0 投票
2 回答
712 浏览

javascript - 使用 Meteor 方法未在 AutoForm 中设置 AutoValue

我有一个使用 autoform、collection2 和简单模式创建的插入表单。该createdBy字段使用自动值填充用户 ID。该表单在meteor.allow()用于插入时有效,但我想用一种方法替换允许,以便我可以对用户角色进行一些验证,即确保用户具有管理员权限。但是现在我收到一个错误,即该createdBy字段为空。

开发工具中的错误是:

错误:400,原因:“需要创建者”,详细信息:未定义,消息:“需要创建者 [400]”,错误类型:“Meteor.Error”}

该方法(在客户端和服务器上可用):

以及生成表单的模板:

0 投票
1 回答
737 浏览

javascript - 如何反应性地调用反应性变量引用的 Meteor 方法?

我正在尝试调用 Meteor 方法,而不是使用硬编码的字符串,而是使用Session包含其名称的变量。Session它工作一次,但在通过 更改值时不会重新运行该方法Session.set

服务器代码:

客户端代码:

如何在Session值更改后响应地调用“新”方法?