修改
错误发生是因为我一直在使用Neo4j版本2.3.5。更新到3.0.4版(最新版本)后,该程序工作。
使用neo4j驱动程序执行session.run()时收到以下错误。
我在控制台中收到的错误:
{ [Error: connect ECONNREFUSED 127.0.0.1:7687]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 7687 }
这是我的 app.js 文件。
var express = require("express");
var path = require("path");
var logger = require("morgan");
var bodyParser = require("body-parser");
var request = require("request");
var neo4j = require("neo4j-driver").v1;
var app = express();
//View Engine
app.set("views", path.join(__dirname, 'views'));
app.set("view engine", "ejs");
app.use(logger("dev"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(express.static(path.join(__dirname, "public")));
var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "neo4j"));
var session = driver.session();
app.get("/", function(req, res) {
session
.run("MATCH (n) RETURN n")
.then(function(result) {
console.log(result.records[0]);
session.close();
driver.close();
}).catch(function(err) {
console.log(err);
});
res.send("It Works!");
});
app.listen(3000);
console.log("Server Started on Port 3000");
module.exports = app;
这是我的 package.json 文件:
{
"name": "sai-node-neo4j",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "*",
"ejs": "2.4.2",
"express": "*",
"morgan": "*",
"neo4j-driver":"*"
}
}
答案 0 :(得分:1)
对我来说,当我使用docker和docker-compose并使用localhost寻址neo4j实例时,我遇到了这个错误。我在我的docker-compose.yml中使用了与neo4j相同的密钥,它是" neo4j"解决它。 (即bolt:// neo4j)
web:
image: node:latest
volumes:
- .:/usr/src/app
links:
- neo4j
ports:
- "3000:3000"
working_dir: /usr/src/app
entrypoint: npm start
neo4j:
image: neo4j:latest
ports:
- "7473:7473"
- "7474:7474"
- "7687:7687"
volumes:
- ./db/dbms:/data