使用Javascript连接Neo4j(无驱动程序)

时间:2018-11-02 17:34:27

标签: javascript node.js neo4j

我正在尝试使用不带驱动程序的Javascript连接到我的Neo4j数据库。我收到401 Auth Required错误。这是我的js文件:

const http = require('http');

const hostname = 'localhost';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);

  var r = require("request");
  var txUrl = "https://hobby-faabenangmiagbkeeiembdbl.dbs.graphenedb.com:24780/db/data/transaction/commit";

  function cypher(query,params,cb) {
  r.post({uri:txUrl,
          json:{statements:[{statement:query,parameters:params}]}},
         function(err,res) {
           cb(err,res.body)
         });
  }

  var query = "MATCH (tom {name: 'Tom Hanks'}) RETURN tom"
  var params = {limit: 10}

  var cb = function(err,data) {
     console.log(JSON.stringify(data))
   };

  cypher(query,params,cb);
});

我可以在哪里传递我的凭据?我正在查看此文件,但是他们没有传递凭据的示例,并且在不使用驱动程序的情况下我找不到如何做的方法:https://neo4j.com/developer/the-example-project-4/#_neo4j_for_javascript_developers

1 个答案:

答案 0 :(得分:1)

  

通过使用HTTP向Neo4j发送用户名和密码进行身份验证   基本验证请求应包含一个Authorization标头,并带有   Basic的值,其中“ payload”是base64编码的字符串   “用户名:密码”。

     

https://neo4j.com/docs/developer-manual/current/http-api/authentication/#http-api-authenticate-to-access-the-server

function cypher(query, params, cb) {
    r.post({
            uri: txUrl,
            auth: {
                'user': 'user',
                'pass': 'password'
            },
            json: {
                statements: [{
                    statement: query,
                    parameters: params
                }]
            }
        },
        function(err, res) {
            cb(err, res.body)
        });
}

https://github.com/request/request#http-authentication