【发布时间】:2019-03-07 16:11:19
【问题描述】:
我对 web 开发比较陌生,并且一直在使用 ArangoDB 来获得大部分有限的经验。我对 Node.js 有基本的了解,并使用 ArangoDB 作为数据库创建基于 express 的 CRUD 应用程序。
虽然我希望能够从客户端内部查询数据库,但我已经达到了一定程度。假设我想要一个 datalist 类型的元素,用户在搜索栏中输入单词。我希望能够从那里查询数据库,而不必在创建数据列表之前查询数据库的所有文件。尽管从客户端使用数据库查询,但我没有发现任何提及。我无法想象这是不可能的。当然,当我通过搜索栏搜索维基百科时,它为我提供了一些选项,我在加载页面时不仅收到了整个维基百科文档列表吗?请引导我朝着正确的方向前进,我不知道如何解决这个问题。
【问题讨论】:
-
第一步是在没有 ArangoDB 的情况下执行此操作,只需让您的 node.js 服务器公开一个允许客户端执行搜索的 REST 端点,然后 node.js 通过简单的东西执行这些搜索,例如静态数组。当您开始工作时,请更新该 REST API 端点以对数据库执行查询,其中用户的搜索文本是查询参数。
-
你误会我了。我知道如何使用请求和响应与 ArangoDB 进行交互。我不明白的是如何查询数据库,而不必先通过请求转到 node.js 端点之一。维基百科是如何做到这一点的?当我加载维基百科时,我会看到一个搜索栏,当我输入一个单词时会提供建议。它有数百万个文档,页面加载时不可能引用数百万个文档,所以我可以得到建议,页面永远不会加载。
-
啊,正确。您所看到的是网页正在查看用户正在输入的文本框的 onchange 事件。它通常会等待大约 1 秒不再输入,然后它会触发对服务器的 REST 调用并提供他们输入的值。然后服务器返回一个有效载荷,网页动态更新页面。要查看它的发生,请在浏览器中按 F12(开发人员工具),查看网络选项卡。您会看到网络调用触发,它们包含您输入的内容,并查看响应。
-
您的问题也不例外,设置该挂钩并在用户输入查询时让您的页面在后台静默启动到节点,然后将该端点连接到 arangodb。当您开始使用它时,它会起作用。
-
好吧,这听起来不错。我只是不确定如何在没有实际获得页面重定向的情况下调用节点。这可能吗?
标签: node.js client-server frontend arangodb arangojs