【问题标题】:Neo4j/graphenedb on Heroku Node.js/Ember.js WebSocket ERR_CONNECTION_RESET issueHeroku Node.js/Ember.js WebSocket ERR_CONNECTION_RESET 问题上的 Neo4j/graphenedb
【发布时间】:2017-02-27 02:15:16
【问题描述】:

我在使用 Ember.js 框架连接的 Heroku 上使用 Neo4j 数据库作为 graphenedb。该应用程序通过 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 设置
  • 我该去哪里修复它? package.json 中的 contentSecurityPolicy 似乎没有帮助,除非我用错了。
  • 我不确定您应该使用 Node.js 将配置放在哪里。但是,当我使用 Rails 时,有一种方法可以将跨域请求列入白名单

标签: node.js heroku ember.js neo4j graphenedb


【解决方案1】:

我是来自 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

【讨论】:

  • 您好朱迪特,谢谢您的回答。我正在使用 bolt 协议,并且 Neo4j 驱动程序似乎在内部调用了 WebSocket:bolt://hobby-herokuserver.dbs.graphenedb.com:24786 在本地,“ember 服务器”命令应该启动 localhost:4200。另一方面,使用 ember 时,它仍然可能是最终调用的浏览器。我会尝试测试一下。连接 curl 似乎有效。
  • 所以我用heroku设置了单独的node.js服务器,我可以从远程服务器和heroku本地连接到GrapheneDB。深入研究neo4j-driver,我可以看到直接支持通过网络浏览器进行连接。这是否意味着 Neo4j 支持 Web Sockets 而 GrapheneDB 不支持? (只是好奇)
  • 很高兴读到您能够做到这一点。关于您的问题,我们的服务不支持。
【解决方案2】:

我相信您需要设置 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2014-04-07
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多