1
- require ( 'file-loader?name=[name].[ext]!../node_modules/neo4j-driver/lib/browser/neo4j-web.min.js' ) ;
2
1
const Movie = require ( './models/Movie' ) ;
3
2
const MovieCast = require ( './models/MovieCast' ) ;
4
3
const _ = require ( 'lodash' ) ;
5
4
6
- const neo4j = window . neo4j ;
5
+ const neo4j = require ( ' neo4j-driver' ) ;
7
6
const neo4jUri = process . env . NEO4J_URI ;
8
7
let neo4jVersion = process . env . NEO4J_VERSION ;
9
8
if ( neo4jVersion === '' ) {
10
- // assume Neo4j 4 by default
11
- neo4jVersion = '4 ' ;
9
+ // assume Neo4j 5 by default
10
+ neo4jVersion = '5 ' ;
12
11
}
13
12
let database = process . env . NEO4J_DATABASE ;
14
- if ( ! neo4jVersion . startsWith ( "4" ) ) {
13
+ if ( ! neo4jVersion . startsWith ( "4" ) || ! neo4jVersion . startsWith ( "5" ) ) {
15
14
database = null ;
16
15
}
17
16
const driver = neo4j . driver (
@@ -23,7 +22,7 @@ console.log(`Database running at ${neo4jUri}`)
23
22
24
23
function searchMovies ( title ) {
25
24
const session = driver . session ( { database : database } ) ;
26
- return session . readTransaction ( ( tx ) =>
25
+ return session . executeRead ( ( tx ) =>
27
26
tx . run ( 'MATCH (movie:Movie) \
28
27
WHERE toLower(movie.title) CONTAINS toLower($title) \
29
28
RETURN movie' ,
@@ -44,7 +43,7 @@ function searchMovies(title) {
44
43
45
44
function getMovie ( title ) {
46
45
const session = driver . session ( { database : database } ) ;
47
- return session . readTransaction ( ( tx ) =>
46
+ return session . executeRead ( ( tx ) =>
48
47
tx . run ( "MATCH (movie:Movie {title:$title}) \
49
48
OPTIONAL MATCH (movie)<-[r]-(person:Person) \
50
49
RETURN movie.title AS title, \
@@ -68,7 +67,7 @@ function getMovie(title) {
68
67
69
68
function voteInMovie ( title ) {
70
69
const session = driver . session ( { database : database } ) ;
71
- return session . writeTransaction ( ( tx ) =>
70
+ return session . executeWrite ( ( tx ) =>
72
71
tx . run ( "MATCH (m:Movie {title: $title}) \
73
72
SET m.votes = coalesce(m.votes, 0) + 1" , { title } ) )
74
73
. then ( result => {
@@ -81,7 +80,7 @@ function voteInMovie(title) {
81
80
82
81
function getGraph ( ) {
83
82
const session = driver . session ( { database : database } ) ;
84
- return session . readTransaction ( ( tx ) =>
83
+ return session . executeRead ( ( tx ) =>
85
84
tx . run ( 'MATCH (m:Movie)<-[:ACTED_IN]-(a:Person) \
86
85
RETURN m.title AS movie, collect(a.name) AS cast \
87
86
LIMIT $limit' , { limit : neo4j . int ( 100 ) } ) )
0 commit comments