0

我在使用 Ember.js 框架连接的Heroku上使用Neo4j数据库作为 graphenedb 。该应用程序通过 Node.js 在本地运行(不通过 Heroku 服务器运行)。

在调用 driver.session(); 我收到此错误:

WebSocket 连接到“ws://hobby-blablabla.dbs.graphenedb.com:24786/”失败: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 可能实际上不允许我从本地计算机连接到数据库。但是解决这个问题并能够连接真的很好。谢谢你的帮助。

4

2 回答 2

1

我是 GrapheneDB 的 Judit。如果我理解你的话,你正在你的 Ember.js 应用程序中加载Neo4j javascript 驱动程序,并且驱动程序正在尝试通过 WebSocket 连接到 GrapheneDB 数据库。不幸的是,这是我们不支持的。

我们始终建议向您的堆栈添加一个后端,该后端处理与 GrapheneDB 的连接,并避免从浏览器执行此操作,并防止将您的凭据暴露给使用您的应用程序的任何人。您可以使用您现在使用的相同驱动程序构建 Node.js 服务器并在那里管理驱动程序连接 ( npm install neo4j-driver)。

顺便说一句,您应该能够使用 Heroku 环境变量的值从本地计算机连接到数据库。您可以通过运行轻松检查:

 GDB_URL=`heroku config:get GRAPHENEDB_URL`
 curl -v $GDB_URL
于 2017-02-27T16:30:25.930 回答
0

我相信你需要设置 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
于 2017-02-27T05:06:59.173 回答