【问题标题】:neo4j server side javascriptneo4j 服务器端 javascript
【发布时间】:2021-03-21 21:58:51
【问题描述】:

我的 Windows PC 上有一个 neo4j 桌面 (1.​​4.3) 数据库。在 html 代码中,我正在使用

连接到数据库

const driver = neo4j.driver("bolt://IP_ADDRESS:7687", neo4j.auth.basic("neo4j", "PASSWORD"));

之后我查询数据库并在网页上显示结果(我使用 Leafletjs 地图,但这不是问题)

 var session = driver.session();
   session
  .run(`MATCH....etc.... return ....
    `)
  .subscribe({
     ...... etc

到目前为止一切都很好。我在我的 PC 或家庭网络中的另一台 PC 上运行该页面,一切都很好。 neo4j 的设置是 (dbms.default_listen_address=0.0.0.0) 没有问题。

问题是如何将此页面公开给我网络之外的同事? 使用 noip.com,我得到了一个映射到我的外部 IP 的临时域。 我还将路由器配置为转发端口 80。
但是当页面 Javascript 在外部客户端上加载时,它会尝试连接到该客户端上的 neo4j。当我将外部 IP 地址放入“const driver ...”时,连接不起作用。

如何从我的服务器连接到数据库,但对数据库的查询来自加载 Javascript 的客户端?

编辑:忘了提到我也在使用 Apache Web Server (Xampp) 为远程用户提供页面。

【问题讨论】:

    标签: javascript node.js neo4j bolt


    【解决方案1】:

    一种简单的架构,可以满足您的需求,并降低向所有人开放数据库的风险,使用 HTTP 服务器 + API,可通过您的 noip 提供程序访问。

    您的面向公众的前端(HTML + JavaScript(用于进行 API 调用等))对您的可公开访问的 API(例如 nodejs 服务器)进行 HTTP(s) 调用以进行数据库调用。 Cypher/与 neo 的直接数据库连接在您的用户浏览器中没有位置。

    您也可以使用像GRANDstack 这样的启动器。

    【讨论】:

      猜你喜欢
      • 2012-05-15
      • 1970-01-01
      • 2011-05-16
      • 2016-04-04
      • 2010-12-31
      • 1970-01-01
      • 2017-05-24
      • 2012-07-14
      • 2011-11-15
      相关资源
      最近更新 更多