Neo4jError:由于身份验证失败,客户端未经授权

时间:2019-02-04 08:45:06

标签: neo4j

我是neo4j的新手。我正在使用javascript驱动程序。需要知道我在做什么错。我正在附上代码片段。我想念什么吗? 请引导我。

app.js

var express = require('express');
var bodyParser = require('body-parser');
var neo4j = require('neo4j-driver').v1;
var app = express();
app.use(bodyParser.json());

var driver = neo4j.driver('bolt://localhost', neo4j.auth.basic("neo4j", "neo4j"));
var session = driver.session();

session
.run('MERGE (alice:Person {name : {nameParam} }) RETURN alice.name AS name', {nameParam: 'Alice'})
.subscribe({
    onNext: function (record) {
        console.log(record.get('name'));
    },
    onCompleted: function () {
        session.close();
    },
    onError: function (error) {
        console.log(error);
    }
});

/*   Start the express App and listen on port 8080 */
  var initServer = function () {

    var server = app.listen(8080);
     console.log('info', '*********** Application Server is listening on Port 8080 ***********');

 };

 initServer();

错误:  img

1 个答案:

答案 0 :(得分:0)

今天早些时候,我短暂碰到了同样的问题。但是后来我想起了当我较早启动neo4j服务器时,我已经从浏览器导航到http://localhost:7474并使用默认凭据username = neo4j和password = neo4j登录,然后提示我在创建新密码之前我可以继续。

我的直觉是您可能没有更改所需的默认密码。之后,您应该没有身份验证问题。使用下面的简短程序检查您是否良好。创建文件index.js并添加以下内容:

const neo4j = require('neo4j-driver').v1;
const driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "YOUR_NEW_PASSWORD"));
const session = driver.session();

const personName = 'Alice';
session.run(
  'CREATE (a:Person {name: $name}) RETURN a',
  {name: personName})
.then(result => {
  session.close();

  const singleRecord = result.records[0];
  const node = singleRecord.get(0);

  console.log(node.properties.name);

  // on application exit:
  driver.close();
})
.catch(error => console.log(error));

使用nodejs,只需在命令提示符下执行即可:

节点index.js

您应该在命令行上看到输出“ Alice”