gpt4 book ai didi

javascript - 如何使用带有 Firebase 的 ElasticSearch 解决 'Error: connect ECONNREFUSED 127.0.0.1:9200'?

转载 作者:行者123 更新时间:2023-11-29 16:38:52 24 4
gpt4 key购买 nike

我知道这个问题已经被问过好几次了,但是解决方案并不适用于我的情况。我已经使用这两个命令启动了 ElasticSearchKibana:

bin/elasticsearch
bin/kibana

并且服务器运行良好,当使用浏览器访问http://localhost:9200时,我得到以下结果:

{
"name" : "vg7RnLh",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "gqDf0H67TxGZGYigAlu2mQ",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

当使用 kibana 时,一切正常。这是我写的firebase cloud function,如果有什么不对的地方,我想是在这里:

exports.downloadUserInfo = functions.https.onRequest((req, res) => {
const { uid } = req.query;

const searchConfig = {
uri: 'http://localhost:9200/users/user/' + uid,
method: 'GET'
};

request(searchConfig)
.then((result) => {
console.log(result);
return res.status(200).send(result);
})
.catch((error) => {
console.log(error);
return res.status(400).send(error);
});
});

其中 request 是由 yarn add request request-promise 安装的模块。然后,当使用 Postman 测试我的 API 时,出现此错误:

enter image description here

我该如何解决?

更新

我还使用命令 node app.js 运行 flashlight。将新用户插入数据库时​​,新用户也会自动插入到 ElasticSearch 服务器(本地主机),但是,当我尝试读取时,它会抛出请求错误

第二次更新

这是创建用户的 API:

exports.register = functions.https.onRequest((req, res) => {
const { firstName, lastName } = req.body;

admin.database().ref('users').push({ firstName, lastName })
.then(() => res.status(201).send())
.catch(() => res.status(400).send());
});

当通过此 API 创建新用户时,此用户会自动插入到我的本地 ElasticSearch 服务器,因为我正在使用 flashlight 插件。我不明白为什么当我尝试从同一台服务器读取时,出现请求错误。

最佳答案

您的代码正在尝试访问本地主机:

uri: 'http://localhost:9200/users/user/' + uid,

这是行不通的:您不能只访问运行 Cloud Functions 的容器上的“随机”端口。

我的猜测是您在本地计算机上运行了 ElasticSearch,这就是 localhost 的意思。但是要在 Cloud Functions 环境中运行代码,您需要在可公开访问的系统上运行 ElasticSearch,并在 uri 中指定该机器的 IP。

关于javascript - 如何使用带有 Firebase 的 ElasticSearch 解决 'Error: connect ECONNREFUSED 127.0.0.1:9200'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48392328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com