【发布时间】:2017-03-07 13:24:09
【问题描述】:
我们想在我们的项目中使用 Elastic Search。我们使用的技术是 Sails.js 和 Angular.js。我正在尝试将 Elastic Search 集成到我们的项目中。我不确定是否可以在不使用 npm 的情况下使用 Elastic Search RESTful API。
【问题讨论】:
标签: node.js rest express elasticsearch sails.js
我们想在我们的项目中使用 Elastic Search。我们使用的技术是 Sails.js 和 Angular.js。我正在尝试将 Elastic Search 集成到我们的项目中。我不确定是否可以在不使用 npm 的情况下使用 Elastic Search RESTful API。
【问题讨论】:
标签: node.js rest express elasticsearch sails.js
我可以在不依赖 Elastic Search 的 npm 的情况下使用 Elastic Search RESTful API
(我假设“弹性搜索的 npm”是指 npm 上的弹性搜索模块)
是的。
您可以使用任何 REST API,而无需使用 npm 为该特定 API 编写的特定模块。
唯一的问题是:为什么?
但要回答您的问题,您可以使用任何可以处理 HTTP 连接的模块,或者您甚至可以使用原始 TCP 套接字。
因此,如果您的 API 是 RESTful,您可以使用其中的任何模块:
httpnetrequestrequest-promise前两个是核心 Node 模块,其他的在 npm 上。
在 npm 上搜索 HTTP 和 REST:
并阅读以下文档:
使用特定模块仍然很有用,因为它可以为您处理很多复杂的事情。例如,看看有多少模块可以在 Node 中使用 Twitter API:
您可以使用request、http 甚至net 来代替这些模块,但您的代码可能要复杂得多。任何其他 RESTful 服务也是如此。您可以重新发明轮子,也可以使用经过充分测试的解决方案。
【讨论】:
是的,可以在没有其(或任何其他)节点模块的情况下使用 Elasticsearch,使用任何方式与 HTTP(或 TCP,如 @rsp 所说)进行通信。
但是,使用编写良好的包可以省去很多麻烦,并且可以更有效地完成工作。
【讨论】:
您可以使用 REST/Request 客户端来执行此操作,并且只需使用 Query DSL。
话虽如此,使用 elasticsearch-js 并将查询构造成服务、帮助程序或适配器会更有意义。
我个人使用后一个选项,它对我来说效果很好。发现现有的 ES 的 Sails 适配器很麻烦。
【讨论】: