输入时检查值是否已存在?

时间:2014-11-15 21:58:34

标签: mongodb meteor

在Meteor中,在用户输入时检查数据库以查看是否存在某些内容的最有效方法是什么?

例如,当用户输入他/她想要的名字来注册帐户时,我试图检查数据库中是否存在用户名。

我可以创建一个keydown事件,以便在每次关键击中时进行检查,或者我可以使用setInterval,但我觉得这样做有点过分。

Meteor中有内置方法可以做这样的事吗?

2 个答案:

答案 0 :(得分:1)

我没有看到类似的东西,所以你必须自己构建它。

安全

显示在键入时使用哪些用户名可以非常轻松地检索现有用户列表。如果用户列表无论如何都可供公众使用(例如在论坛中),这可能没问题,但在大多数应用程序中你应该避免这种情况。

等到用户停止输入

用户输入的速度可能比服务能够检查数据库的速度快。因此,检查每个击键将导致许多不必要的服务调用。你应该至少实现延迟或等到该领域失去焦点。

预见下一个角色

您应该尽量减少服务电话。例如,如果某人键入" Mic",除了检查确切名称外,您还可以添加" Mick"和" Mic1"已经被采取了。进一步的优化是根据常用名称预测多个字符,但这可能永远不需要。

重新使用自动填充代码

您可以重复使用自动完成组件的某些代码,例如何时触发服务调用。但是大多数代码都无法重复使用,因为用户界面非常不同。

答案 1 :(得分:1)

您可能会发现此智能套餐很有用。

https://github.com/mizzao/meteor-autocomplete