gpt4 book ai didi

node.js - 如何将 Firebase Flashlight 集成到我的应用程序中

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:15 26 4
gpt4 key购买 nike

我正在尝试集成Firebase Flashlight在我的 Node.js 应用程序中使用 ElasticSearch,以便对我的 Firebase 集合进行搜索操作。我想在 api.js 中定义我的搜索路由(例如:myhost: myport/search/mycollection/:key)。

问题在于 myport 与运行 ElasticSearch 的端口(9200)不同。

我希望在路线 myhost: myport/whatever 上运行我的应用程序,并在路线 myhost: myport/search/mycollection/:key 上运行现在在 myhost:9200 上可用的搜索。

如何将它们集成到 Express 中?

当我配置 ElasticSearch 时,我使用:

var config = {
host: 'localhost',
port: 9200,
log: 'trace'
};
var esc = new ElasticSearch.Client(config);

最佳答案

Elastic Search 将在与 Express 应用程序不同的端口上运行是正常的。事实上,您不能让两台服务器在同一端口上运行。

Flashlight 更像是一个不同的应用程序,您需要在服务器上运行它。设置配置文件后,您可以使用 npm startnpm monitor 启动 Flashlight 进程。 Flashlight 会小心地为您提供 Elastic Search 中来自 Firebase 的数据。

要与 Elastic Search 交互,您只需使用 Node 模块。你已经这么做了。正如您所提到的,Elastic Search 将在端口 9200 上运行,而 Express 应用程序将在不同的端口上运行(例如 3000)。

受手电筒的启发,我创建了 Elasticfire它具有 Flashlight 没有的一些功能(例如连接),并且可以在您的应用程序中用作库。

const ElasticFire = require("elasticfire");

// Initialize the ElasticFire instance
let ef = new ElasticFire({

// Set the Firebase configuration
firebase: {
apiKey: "AI...BY",
authDomain: "em...d.firebaseapp.com",
databaseURL: "https://em...d.firebaseio.com",
storageBucket: "em...d.appspot.com",
messagingSenderId: "95...36"
}

// Firebase paths and how to index them in Elasticsearch
, paths: [
{
// Firebase path
path : "articles"

// Elasticsearch index and type
, index: "articles"
, type : "article"

// Optional joined fields
, joins: [
// The `author` is a field from the article
// which points to the `users` collection.
{
path: "users"
, name: "author"
}

// If we have an array of comment ids, pointing
// to another collection, then they will be joined too
, {
path: "comments"
, name: "comments"
}
]

// Filter out some data
, filter: (data, snap) => snap.key !== "_id"
}
]
});

// Listen for the events emitted by
// the ElasticFire instanceand output some data
ef.on("error", err => {
console.error(err);
}).on("index_created", name => {
console.log(`${name} created`);
}).on("index_updated", name => {
console.log(`${name} updated`);
}).on("index_deleted", name => {
console.log(`${name} deleted`);
});

关于node.js - 如何将 Firebase Flashlight 集成到我的应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40528519/

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