Как мне интегрировать драйвер neo4j в node.js

#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()
})