问题标签 [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 方法回调的结果未定义
我有一段时间没有在 Meteor 中编码了,但是我有这个 Meteor 方法,它创建一个任务并返回 ID 和另一个将该任务附加到项目的方法:
我试图在客户端上调用它,如下所示:
我遇到的问题是taskId
回调中没有设置。从方法端,我看到服务器中的日志消息如下:
在客户端:
所以我知道它正在返回一些东西,但回调只是没有得到它。我知道我可能应该将 createTask 更改为只获取任务和 projectId 来链接它,但我想尝试弄清楚为什么它没有将 Meteor 方法的结果输入到客户端的回调中。
javascript - 我应该如何使用“es6 import”和来自客户端服务器的高级方法 Meteor 包或两者兼而有之?
我在这里有我的方法:imports/api/Books/methods
按照指南,如果我们想要乐观的 UI,我们可以从服务器或两者(服务器和客户端)导入此方法。
但是,如果我们使用这个包:https://github.com/meteor/validated-method:是否有必要从两者中导入?我们可以从服务器导入吗?
谢谢
更新
我已经读过这个:
javascript - Meteor:如果我有一个使用 userId 的方法,我是否必须检查他们是否已登录?
我正在使用 Meteor 帐户包。
假设我有使用 this.userId 做某事的 Meteor 方法。但是这些方法可以从任何客户端调用吗?这意味着恶意客户端可以在不登录的情况下调用这些方法?为了安全起见,我应该先手动检查客户端是否是登录用户吗?
javascript - Running code before and after each Method call in Meteor
I´m running several method calls that need to show the end user a loading modal and hide it when the method resturns a result. I was looking for a way to run this pre-call code and post-call code for every method without repeating code.
I want to be able to run those 2 swal codes without writing that code in each call. Is there some way to configure Meteor.call to do something before and after the call to the method?
meteor - Meteor Async ValidatedMethod 被调用,函数参数未定义
使用async run(params)
原因(params
似乎undefined
上下文切换到Global
上下文)。删除async
工作正常(除了我不能在方法体中使用 await 显然)。为什么会这样,我怎么还能在 a 中使用 await ValidatedMethod
?
注意1:我像这样从客户端调用该方法——如果我尝试使用常规Meteor.methods({})
定义,则会得到相同的结果。我正在Meteor.apply
从客户端调用使用的方法
然后,调用客户端(我确定paramsObject
是正确的):
注意 2:我还追踪到了 Meteor.apply 的内部,实际上它paramsObject
在调试会话中发送了 over DDP:
非常感谢您的任何见解。
security - Meteor:保护应用程序管理部分所需的 SSR?
Meteor.users
我在集合中有我的扩展用户模型,我将大部分字段从它发布到客户端。每个用户都有一个isAdmin
字段,false
默认设置为。
现在我有两个担忧,它们是相互关联的:
如果集合中的
isAdmin
字段设置为,如何确保仅能呈现用于管理员的组件?Meteor.users
true
如何确保不能从客户端控制台修改集合
isAdmin
上的字段?Meteor.users
关于1。
我很犹豫是否将此字段发布给客户端并在isAdmin
客户端进行简单评估。
我不确定控制台是否有一些骇人听闻的方式来简单地更改isAdmin
为允许呈现仅适用于客户端管理员的组件(或其中的一部分)的方式。例如,我可以想象这样做是可能的Object.defineProperty()
。
我应该使用它
server-side rendering
来保护我的 UI 的管理部分吗?
关于2。
考虑一下本文中关于常见错误的配置文件编辑的第一段。它表明可以通过从控制台调用轻松地从客户端更改。isAdmin
Meteor.users.update(Meteor.userId(), {$set: {'isAdmin': true}})
当我运行它并登录到我的应用程序时,我明白update failed: Access denied
了。
但即使官方文档仍然建议添加
在https://guide.meteor.com/security.html#allow-deny
有一个答案,表明只要isAdmin
确定服务器端的属性就足够了Meteor.methods
。但它根本不说话allow-deny
,它已经6岁了。
谁能告诉我,今天的真实情况如何?
meteor - Meteor 中服务器端代码的最佳实践是什么?
我是编码和 Web 开发领域的新手,对于我的第一个真实项目,我已经开始使用 Meteor 构建一个测验 Web 应用程序。
长话短说,该应用程序基本上向用户显示一个随机问题,然后接受他们的答案并获得反馈(它比这要复杂一些,但就这个问题而言,这是主要功能)。
我已经设法让它工作了,但是几乎所有的事情(除了帐户创建和那种东西)都是在客户端完成的(比如获取随机 qn)——我想这不是很安全。 .
我想在服务器上移动大部分计算和操作,但我不想将任何 Questions 集合发布到客户端,因为这意味着客户端基本上可以更改它和/或查看正确答案。
所以,我的问题是,如果我不向客户端发布任何内容(除了他们的用户文档)并且基本上通过 Meteor 方法(在客户端调用并在服务器端执行)来完成所有事情,这是否会被视为“不好的做法”?
我已经尝试过实现它,到目前为止一切正常,但只是想知道这是否是一种好习惯。它会以任何方式损害性能吗?
我已经在网上搜索了一段时间,但无法真正找到明确的答案,因此我在这里发帖...... TIA
meteor - Accounts.changePassword 在方法中不起作用
我正在开发 Meteor 应用程序,我想将调用Accounts.changePassword
从客户端转移到方法。但是,当我尝试运行该方法时,出现此服务器错误:
调用方法“setPersonalPassword”类型错误时出现异常:对象 [object Object] 没有方法“changePassword”
这是有问题的代码:
但是,此代码在客户端上运行良好:
我特别困惑,因为我已经成功地使用了这两种方法Accounts.createUser()
和Accounts.setPassword()
其他方法。
javascript - Meteor 调用结果有未定义的实例变量
服务器有一个 Meteor Method
,它返回一个GiftList
包含Gift
集合的对象。
Call
客户端有一个打印结果的 Meteor 。该Gift
集合是未定义的,即使它是由服务器初始化和发送的。即使服务器已经发送了实例变量,它似乎也没有包含在响应中。
礼品清单
礼物
服务器 - Meteor 方法
客户端 - 流星呼叫
问题
为什么Gift
集合未定义?