使用 Meteor.methods 和利用存根

阅读时长 4 分钟读完

在开发 Meteor 应用程序时,您需要将代码拆分为客户端和服务器端。在某些情况下,您需要在服务器端运行方法并返回结果。这就是 Meteor.methods 方法派上用场的地方。

何时使用 Meteor.methods?

Meteor.methods 允许您在服务器端定义方法,并从客户端调用它们。这非常有用,因为客户端可能无法执行所有必要的计算或数据库操作。例如:

-- -------------------- ---- -------
----------------
  ---------------------- -
    ----- ------ - ---------------
    ----- --- - --------------------------------------------------------------------------------
    ----- -------- - --------------
    ------ --------------
  -
---

-- -------
------------------------- ---- ----------- ------- ------- -- -
  -- ------- -
    -------------------
  - ---- -
    --------------------
  -
---

在此示例中,我们定义名为 getWeather 的方法,该方法接受一个字符串参数 location 并获取位于该位置的天气信息。然后,我们使用 Meteor.call 从客户端调用此方法,并在响应成功时打印结果。

注意事项

  • 不要将敏感信息存储在 Meteor.methods 中,以避免安全漏洞。
  • Meteor.methods 中的代码在服务器端执行,因此请确保您的代码是可靠且高效的。

利用存根

存根(Stubs)是在客户端上定义的特殊方法,它们允许在应用程序的不同部分测试您的代码。存根类似于 Mock,但更轻量级。

示例

假设我们有一个名为 Posts 的集合,并且我们希望检查添加新帖子的功能是否正常工作。我们可以使用存根来模拟此操作:

-- -------------------- ---- -------
-- ----------------- -
  ----------------
    ---------- -------------- --
  ---
-

-- ----------------- -
  ----------------
    ---------- -------------- -
      -------------------
    -
  ---
-

----------------- ---------- -
  ---------- ----- ------ --- ------- ---------- -
    ----- ---- - - ------ ---- ------ ----- ----- -- - --- ------ --
    ----- ----------- - ------------------ --------
    -- ----
    ------------------------------- ------------------
    -- ----
    -------------------
    ------------------------------------------
    ----------------------
  ---
---

在此示例中,我们使用 sinon 存根 Meteor.call 方法,以便在本地模拟服务器端的 addPost 方法。在 describe 库中,我们插入新发布并确保调用了正确的方法。

注意事项

  • 使用存根进行测试时,请确保在生产设置中将其删除。
  • 存根只能用于客户端测试,因为它们是在客户端上定义的。

结论

Meteor.methods 允许您在客户端和服务器端之间定义和调用方法。使用存根时,可以轻松地测试您的代码,并保证其在生产设置中正常工作。记住,在任何时候都要编写可靠且高效的代码。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/27817

纠错
反馈