问题标签 [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.
javascript - Meteor.call 即使使用回调函数也会引发异常
我有流星方法:
在字段上进行自定义验证statusNote
:
我的问题是,即使定义了回调函数:
异常记录到控制台:
模拟调用'orderStatusUpdate'的效果时出现异常errorClass {message:“匹配错误:需要注意”,路径:“”,sanitizedError:errorClass,errorType:“Match.Error”,invalidKeys:Array [1]}错误:匹配错误:需要注意
据我了解,当我调用check(...)
.
我怎样才能捕捉到这个异常以正确地展示给客户?
顺便说一句,回调函数也用error
变量集调用。
meteor - Meteor - 数据未插入数据库
嘿伙计们,我的第二个网络应用程序在我的本地环境中启动并运行,它运行得非常完美,但是当我使用
meteor deploy kortmotmenneskeheten.meteor.com/
.
我有一个 Meteor.methods 用于让用户创建一个新游戏,它应该将一个新游戏添加到数据库中,但它似乎对数据库没有影响。这是方法:
显然添加了很多用于调试的 console.log() 语句,它们表明该方法正在运行,直到 try 块,我有点不知所措,感谢任何帮助或指针。
编辑:另外,在我运行该方法后,您无法注销您的帐户。
meteor - 为单个 Meteor 服务器方法定义多个名称
我有一个导出多个服务器方法的 Meteor 包。由于没有关于如何命名方法的普遍约定,我想为每个方法命名多个名称。起初,我使用其他方法对第一个方法的调用:
现在我使用一种更简单的方法:
但是有没有更简单,甚至可能是传统的方法来做到这一点?
javascript - Meteor.call 回调未执行,如果我不执行提取,它会被静默忽略
为什么如果我写这个:
/client/Items.js
/ItemsMethods.js
回调被静默忽略,即它没有被执行并且我没有收到任何错误?
请注意,如果我将其替换return Items.find({});
为这return Items.find({}).fetch();
一切,则一切正常。
meteor - 使用流星发布订阅的投影
我有一个 UI 元素框架,它只适用于特定的数据模型(需要一个带有“文本”键的对象)。这与我的 mongodb 中存在的数据模型不同。所以我的第一个想法是使用投影并将其发布给听众。
var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;
db.Element.aggregate({$project: { _id:1, text:"$description"}});
问题是这不是游标,而只是简单的 ejson 对象。我应该使用什么策略来为 UI 框架提供所需的数据并从双方进行反应性/数据绑定。
javascript - 如何防止从 JavaScript 控制台调用“Meteor.call”?
我刚刚注意到,Meteor.call
阻止用户调用集合的插入、更新、删除方法的概念仍然可以从 JavaScript 控制台调用。
以客户为例:
这是服务器部分:
好的,我知道人们不能直接从他们的 JavaScript 控制台调用 Product.insert() 。
但是,如果他们再多尝试一点,他们会Meteor.call()
从开发者工具的资源选项卡中发现客户端的 JavaScript 中有。
所以现在他们可以尝试Meteor.call
从他们的控制台调用,然后尝试猜测应该是什么productInfo
属性。
所以我想知道我们如何才能防止这种最终活动?是否Meteor.call
做得足够好?或者我错过了一些重要的东西?
meteor - 方法调用未从事件返回,但将从控制台返回
我有一个奇怪的问题,我无法弄清楚。我的模板事件句柄中有一个方法和一个方法调用。由于某种原因,该方法调用只能像 5 次中的 1 次一样工作,并且不会更新 DOM。当调用起作用时,console.log(Session.get('getReportData')+ " from method call");
将对象返回到控制台而不是 DOM。
当我在控制台中手动设置变量并调用:
我把所有东西都拿回来了,DOM 也更新了。
这是代码:
什么会导致这个问题?
- 每次通话都不行。
- 当它工作时,DOM 没有更新?
meteor - 使投票系统安全 Meteor.Methods
我正在尝试实现一个安全的投票系统,并且不能使用来自客户端控制台的 Meteor.call() 进行更改。每个人都可以在登录后对一些帖子进行上下投票。但每个用户和帖子一次只能投票一次。
只有我的客户端我得到了这样的东西:
在我的服务器上:
问题是我如何确保这个安全,例如如果有人调用 aMeteor.call('argumentvoteYes', "someID" , {$inc: {score:2}});
它将增加 2 的分数。如果用户调用它两次,投票将增加 4。有什么方法可以安全地做到这一点?
javascript - 使用 Meteor 方法未在 AutoForm 中设置 AutoValue
我有一个使用 autoform、collection2 和简单模式创建的插入表单。该createdBy
字段使用自动值填充用户 ID。该表单在meteor.allow()
用于插入时有效,但我想用一种方法替换允许,以便我可以对用户角色进行一些验证,即确保用户具有管理员权限。但是现在我收到一个错误,即该createdBy
字段为空。
开发工具中的错误是:
错误:400,原因:“需要创建者”,详细信息:未定义,消息:“需要创建者 [400]”,错误类型:“Meteor.Error”}
该方法(在客户端和服务器上可用):
以及生成表单的模板:
javascript - 如何反应性地调用反应性变量引用的 Meteor 方法?
我正在尝试调用 Meteor 方法,而不是使用硬编码的字符串,而是使用Session
包含其名称的变量。Session
它工作一次,但在通过 更改值时不会重新运行该方法Session.set
。
服务器代码:
客户端代码:
如何在Session
值更改后响应地调用“新”方法?