#node.js #neo4j
#node.js #neo4j
Вопрос:
Я хочу использовать графическую базу данных neo4j с Node.
Но я получаю сообщение об ошибке. Пожалуйста, помогите.
Ошибка говорит, что neo4j не определен. Но я уже установил драйвер с помощью npm
Вот мой код :
var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var app = require('neo4j-driver').v1; // neo4J driver
var app = express();
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.v1.driver('bolt://localhost:7687', neo4j.v1.auth.basic('neo4j','test')); // neo4j driver
// var session = driver.session();
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('neo4j', 'test'));
app.get('/',function(req,res) {
res.send('it Works');
});
app.listen(3000);
console.log('Server Started on port 3000');
module.exports = app;
Я получаю следующую ошибку :
PS D:Projectsneo4J_node> node .app.js
D:Projectsneo4J_nodeapp.js:23
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('neo4j', 'test'));
^
ReferenceError: neo4j is not defined
at Object.<anonymous> (D:Projectsneo4J_nodeapp.js:23:16)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
PS D:Projectsneo4J_node>
Комментарии:
1. И почему это удивительно? Вы проверили имя, которое использовали для импорта?
2. Упс. Спасибо, jonrsharpe, за помощь. Это устранило проблему.
Ответ №1:
Драйверы были обновлены, и тот, который вы используете, больше не действителен. Внесите приведенные ниже изменения и протестируйте его с помощью сеанса, добавив тестовый узел в neo4j. Изменить:
var app = require('neo4j-driver').v1; // neo4J driver
Для:
var neo4j = require('neo4j-driver')
чтобы протестировать соединение, попробуйте этот код:
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('neo4j', 'test'));
const session = driver.session()
const resultPromise = session.writeTransaction(tx =>
tx.run(
'CREATE (a:Greeting) SET a.message = $message RETURN a.message ", from node " id(a)',
{ message: 'hello, world' }
)
)
resultPromise.then(result => {
session.close()
const singleRecord = result.records[0]
const greeting = singleRecord.get(0)
console.log(greeting)
// on application exit:
driver.close()
})