【问题标题】:Querying ArangoDB without leaving page不离开页面查询 ArangoDB
【发布时间】: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


【解决方案1】:

看看如何构建动态表单,这将允许您执行从浏览器窗口到后端 REST API 服务的 AJAX 样式调用。这将允许您的后端 Web 服务收集响应数据(如果需要,来自 ArangoDB),并使用该数据进行响应,很可能是 JSON 格式。

然后,您的 UI 可以接受该响应并动态更新 DOM 中的组件,以便用户可以看到注入页面的数据,而无需进行页面重新加载操作。

https://www.pluralsight.com/search?q=ajax 是一个很好的起点。

您也可以查看免费内容,例如https://www.youtube.com/watch?v=tNKD0kfel6o

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 2020-07-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多