Neo4j/graphenedb 关于 Heroku Node.js/Ember.js WebSocket ERR_CONNECTION_RESET 问题
Neo4j/graphenedb on Heroku Node.js/Ember.js WebSocket ERR_CONNECTION_RESET issue
我正在使用 Neo4j 数据库作为 graphenedb 在 Heroku 上使用 Ember.js 框架连接。该应用程序正在通过 Node.js 在本地 运行(不是通过 Heroku 服务器 运行)。
在调用 driver.session() 时;我收到此错误:
与 'ws://hobby-blablabla.dbs.graphenedb.com:24786/' 的 WebSocket 连接失败:WebSocket 握手期间出错:net::ERR_CONNECTION_RESET
我使用 ember-browserify 导入驱动程序:
import Neo4j from 'npm:neo4j-driver';
我调用代码:
var neo4j = Neo4j.v1;
var driver = neo4j.driver(graphenedbURL, neo4j.auth.basic(graphenedbUser, graphenedbPass));
var session = driver.session(); // error it thrown here
我通过 Heroku CLI 使用终端命令检索了连接信息,例如:heroku config:get GRAPHENEDB_BOLT_URL
有可能 Heroku 实际上不允许我从本地计算机连接到数据库。但是,如果能解决这个问题并能够连接,那就太好了。谢谢你的帮助。
我认为您需要设置 CROSS 设置。不确定如何在 Node 中执行此操作,但以下是我设置我的 Rails 应用程序的方法,
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [
:get, :post, :put, :patch, :delete, :options, :head
]
end
end
我是 GrapheneDB 的 Judit。如果我理解你的意思,你正在你的 Ember.js 应用程序中加载 Neo4j javascript driver 并且驱动程序正在尝试通过 WebSocket 连接到 GrapheneDB 数据库。很遗憾,我们不支持这种做法。
我们始终建议向您的堆栈添加一个后端,处理与 GrapheneDB 的连接,并避免从浏览器执行此操作,并防止将您的凭据暴露给使用您的应用程序的任何人。您可以构建一个 Node.js 服务器并使用您现在使用的相同驱动程序管理那里的驱动程序连接 (npm install neo4j-driver
)。
顺便说一句,您应该能够使用 Heroku 环境变量的值从本地计算机连接到数据库。您可以通过 运行:
轻松查看
GDB_URL=`heroku config:get GRAPHENEDB_URL`
curl -v $GDB_URL
我正在使用 Neo4j 数据库作为 graphenedb 在 Heroku 上使用 Ember.js 框架连接。该应用程序正在通过 Node.js 在本地 运行(不是通过 Heroku 服务器 运行)。
在调用 driver.session() 时;我收到此错误:
与 'ws://hobby-blablabla.dbs.graphenedb.com:24786/' 的 WebSocket 连接失败:WebSocket 握手期间出错:net::ERR_CONNECTION_RESET
我使用 ember-browserify 导入驱动程序:
import Neo4j from 'npm:neo4j-driver';
我调用代码:
var neo4j = Neo4j.v1;
var driver = neo4j.driver(graphenedbURL, neo4j.auth.basic(graphenedbUser, graphenedbPass));
var session = driver.session(); // error it thrown here
我通过 Heroku CLI 使用终端命令检索了连接信息,例如:heroku config:get GRAPHENEDB_BOLT_URL
有可能 Heroku 实际上不允许我从本地计算机连接到数据库。但是,如果能解决这个问题并能够连接,那就太好了。谢谢你的帮助。
我认为您需要设置 CROSS 设置。不确定如何在 Node 中执行此操作,但以下是我设置我的 Rails 应用程序的方法,
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [
:get, :post, :put, :patch, :delete, :options, :head
]
end
end
我是 GrapheneDB 的 Judit。如果我理解你的意思,你正在你的 Ember.js 应用程序中加载 Neo4j javascript driver 并且驱动程序正在尝试通过 WebSocket 连接到 GrapheneDB 数据库。很遗憾,我们不支持这种做法。
我们始终建议向您的堆栈添加一个后端,处理与 GrapheneDB 的连接,并避免从浏览器执行此操作,并防止将您的凭据暴露给使用您的应用程序的任何人。您可以构建一个 Node.js 服务器并使用您现在使用的相同驱动程序管理那里的驱动程序连接 (npm install neo4j-driver
)。
顺便说一句,您应该能够使用 Heroku 环境变量的值从本地计算机连接到数据库。您可以通过 运行:
轻松查看 GDB_URL=`heroku config:get GRAPHENEDB_URL`
curl -v $GDB_URL